「Wdsr-1」小铃的书
题目背景
本居小铃在人间之里经营着一家名为“铃奈庵”的书店。店里井井有条地堆放着很多很多书。
一天,魔理沙来铃奈庵借书,搞得店里十分混乱,魔理沙随身携带的魔导书与铃奈庵的书籍全都混在了一起。
题目描述
小铃一共有 $n-1$ 本书,每本书有一个编号 $a_i$,两本书属于同一种类当且仅当两本书的编号相同。
由于小铃平时将这些书整理得井井有条,因此在小铃的 $n-1$ 本书中,每个种类的书的数量都恰好是 $k$ 的倍数,其中 $k$ 是一给出的常数。
现在,魔理沙的一本编号未知的魔导书与小铃的 $n-1$ 本书混在了一起,而魔理沙只有知道魔导书的编号才能将其找回。
由于书的数量实在太多,魔理沙找到了你来帮忙,希望聪明的你能帮她求出混入的魔导书的编号。
**注意:魔理沙的魔导书可能与小铃的某本书有着相同的编号。**
输入输出格式
输入格式
第一行是两个整数 $n,k$,含义与题目描述一致。
保证 $n\equiv 1 \pmod k$ 。
第二行共 $n$ 个整数,表示混在一起的 $n$ 本书的编号 $a_i$ 。
输出格式
共一行一个整数,表示魔理沙的魔导书的编号。
输入输出样例
输入样例 #1
10 3
1 1 2 2 3 5 3 2 1 3
输出样例 #1
5
输入样例 #2
13 4
1 1 4 5 1 4 1 4 4 5 5 5 1
输出样例 #2
1
说明
#### 样例说明
样例 $1$ 中,小铃的书的编号为 $1,2,3$,分别有 $3$ 本。因此魔导书的编号为 $5$。
样例 $2$ 中,小铃的书的编号为 $1,4,5$,分别有 $4$ 本。因此魔导书的编号为 $1$。
------------------------
#### 数据范围及约定
**本题采取捆绑测试。**
$$
\def{\arraystretch}{1.5}
\def\cuteran{https://www.luogu.com.cn/paste/iyzwht7l}
\begin{array}{|c|c|c|}\hline
\textbf{Subtask} & \bm{n\le} & \textbf{分值} \cr\hline
1 & 10^5 & 50 \cr\hline
2 & 10^6 & 25 \cr\hline
3 & 10^7 & 25 \cr\hline
\end{array}
$$
对于全部数据,保证 $1 \le n \le 10^7$ ,$2 \le k \le 10^3$ ,$1 \le a_i \le 10^{18}$。保证数据合法,即有且只有一本混入的魔导书。
-----------------
#### 提示
**请注意时空限制。**
**使用 $\texttt{cin}$ / $\texttt{cout}$ 可能超时,这里给出一个快速读入模板:**
```cpp
long long qread(){
long long w=1,c,ret;
while((c=getchar())> '9'||c< '0')
w=(c=='-'?-1:1); ret=c-'0';
while((c=getchar())>='0'&&c<='9')
ret=ret*10+c-'0';
return ret*w;
}
```
**或者使用这份模板:**
```cpp
typedef long long LL;
#define gc pa==pb&&(pb=(pa=buf)+fread(buf,1,100000,stdin),pa==pb)?EOF:*pa++
static char buf[100000],*pa(buf),*pb(buf);
inline LL readint() {
LL x=0;char c=gc;
while(c<'0'||c>'9')c=gc;
for(;c>='0'&&c<='9';c=gc)x=x*10+(c&15);
return x;
}
```
**其中,在开启 O2 开关的前提下,前者在极限数据下的读入要 $500\texttt{ms}$,而后者需要 $300\texttt{ms}$。也就是说,你的程序至少有 $500\sim 700\texttt{ms}$ 的时间执行主要算法。**