射箭比赛按照以下规则进行。共有 $N$ 个靶位排成一行,并按其在线上的位置从 $1$ 到 $N$ 编号(最左侧的靶位为 $1$ 号,最右侧的靶位为 $N$ 号)。共有 $2N$ 名射箭选手。在比赛期间的任何时刻,每个靶位上都有两名选手。比赛的每一轮按照以下流程进行:
每个靶位上的两名选手进行比赛,决出胜负。随后,所有选手按以下方式重新分配:
- $2$ 号到 $N$ 号靶位的获胜者移动到其左侧的靶位(即分别移动到 $1$ 号到 $N-1$ 号靶位)。
- $2$ 号到 $N$ 号靶位的失败者,以及 $1$ 号靶位的获胜者,留在原靶位。
- $1$ 号靶位的失败者移动到 $N$ 号靶位。
比赛持续 $R$ 轮,轮数至少与选手人数相等(即 $R \ge 2N$)。
你是唯一准时到达比赛现场的选手。其他 $2N-1$ 名选手已经提前到达并排成了一列。你现在需要将自己插入到队伍中的某个位置。你知道在你确定位置后,队伍中最左侧的两名选手将从 $1$ 号靶位开始比赛,接下来的两名选手从 $2$ 号靶位开始,以此类推,最右侧的两名选手从 $N$ 号靶位开始。
比赛中的所有 $2N$ 名选手(包括你自己)都按技能水平排名,排名越小代表技能越强。没有两名选手的排名相同。此外,每当两名选手比赛时,排名较小者总是获胜。
了解每位竞争对手的技能水平后,你希望以一种方式插入队伍,以确保你在比赛结束时所在的靶位编号尽可能小。如果存在多种方式达到此目的,你倾向于选择起始靶位编号尽可能大的那种方式。
任务
编写一个程序,给定所有选手(包括你自己)的排名以及竞争对手在队伍中的排列顺序,确定你应该从哪个靶位开始比赛,以实现上述目标。
数据范围
- $1 \le N \le 200,000$:靶位数量,也等于选手人数的一半。
- $2N \le R \le 1,000,000,000$:比赛轮数。
- $1 \le S_k \le 2N$:选手 $k$ 的排名。
输入格式
程序必须从标准输入读取以下数据:
- 第一行包含两个整数 $N$ 和 $R$,以空格分隔。
- 接下来的 $2N$ 行列出了选手的排名。第一行是你的排名。其余行包含其他选手的排名,每行一名选手,按他们排队的顺序(从左到右)。这 $2N$ 行中的每一行都包含一个 $1$ 到 $2N$ 之间的整数。排名 $1$ 为最强,排名 $2N$ 为最弱。没有两名选手的排名相同。
输出格式
程序必须向标准输出写入一行,包含一个 $1$ 到 $N$ 之间的整数:你开始比赛的靶位编号。
子任务
对于部分测试点,总分 $60$ 分,满足 $N \le 5,000$。 此外,对于部分测试点,总分 $20$ 分,满足 $N \le 200$。
样例
样例输入 1
4 8 7 4 2 6 5 8 1 3
样例输出 1
3
说明 1
你是倒数第二弱的选手。如果你从 $1$ 号靶位开始,你将移动到 $4$ 号靶位并一直待到比赛结束。如果你从 $2$ 号或 $4$ 号靶位开始,你将在整个比赛期间一直待在原处。如果你从 $3$ 号靶位开始,你将击败最弱的选手,然后移动到 $2$ 号靶位并一直待在那里。
样例输入 2
4 9 2 1 5 8 3 4 7 6
样例输出 2
2
说明 2
你是第二强的选手。最强的选手已经在 $1$ 号靶位,并将全程待在那里。因此,无论你从哪里开始,你总是会从你的靶位出发,反复经过从 $4$ 到 $1$ 的所有靶位。为了在 $9$ 轮转换后最终停在 $1$ 号靶位,你必须从 $2$ 号靶位开始。