当无法出门或与好友见面时,生活会显得枯燥乏味。幸运的是,你最喜欢的乐队今年一直在发布新歌,例如《Ussewa》、《Wan Koei Tuen》和《Thought Crime》。因此,你决定在家中一边播放播放列表一边锻炼!
你有一个包含 $N$ 首歌的播放列表,编号从 $1$ 到 $N$,代表歌曲的播放顺序。每首歌 $i$ 都有一个“嗨度值”(hypeness value)$A_i$。
在锻炼时,你只想听符合某种兴奋度上升模式的歌曲。你可以选择跳过一些歌曲,并保持剩余歌曲的原始顺序。
形式化地,令 $S = [S_1, S_2, \dots, S_k]$ 为 $[1, 2, \dots, N]$ 的一个子序列,表示未被跳过的歌曲的下标。你的任务是找到最长的子序列 $S$,使得:
- 嗨度严格递增:对于所有 $i \ge 2$,满足 $A_{S_i} > A_{S_{i-1}}$。
- 嗨度的增量也严格递增:对于所有 $i \ge 3$,满足 $A_{S_i} - A_{S_{i-1}} > A_{S_{i-1}} - A_{S_{i-2}}$。
换句话说,嗨度值本身及其相邻项之间的差值都必须构成严格递增序列。请找出满足条件的子序列 $S$ 的最大长度。
输入格式
第一行包含一个整数 $N$ ($1 \le N \le 5 \cdot 10^4$),表示播放列表中的歌曲数量。 第二行包含 $N$ 个整数 $A_1, A_2, \dots, A_N$ ($1 \le A_i \le 10^5$),表示歌曲的嗨度值。
输出格式
第一行输出一个整数 $k$,表示未被跳过的歌曲数量。 第二行输出 $k$ 个整数,表示未被跳过的歌曲的下标,按升序排列。 如果存在多个合法的未跳过歌曲列表,你可以输出其中任意一个。
样例
输入 1
5 2 1 3 4 6
输出 1
3 3 4 5
说明 1
其他合法的未跳过歌曲列表包括 $[1, 3, 5]$(对应的嗨度值为 $[2, 3, 6]$)和 $[2, 3, 5]$(对应的嗨度值为 $[1, 3, 6]$)。你可以输出其中任意一个。