#CF813E. Army Creation

Army Creation

Army Creation

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

有 nn 名战士,第 ii 名战士的类型为 aia_i。对于每个询问,只能从指定编号区间中选择战士;为了使军队保持平衡,每种类型至多选择 kk 名战士。请计算最多能选择多少名战士。

询问经过上一次答案加密。令上一次询问的答案为 lastlast,初始时 last=0last=0。读入 x,yx,y 后,按下式还原真实区间:

l=((x+last) mod n)+1,l=((x+last)\bmod n)+1, r=((y+last) mod n)+1.r=((y+last)\bmod n)+1.

若 l>rl>r,则交换 l,rl,r。

输入格式

第一行包含两个整数 n,kn,k。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示各战士的类型。

第三行包含一个整数 qq。

接下来 qq 行,每行包含两个整数 x,yx,y,表示一个加密后的询问。

输出格式

对于每个询问输出一行一个整数,表示平衡军队的最大人数。

样例输入

6 2
1 1 1 2 2 2
5
1 6
4 3
1 1
2 6
2 6

样例输出

2
4
1
3
2

数据范围

对于全部数据,1≤n,k,q≤1051\le n,k,q\le10^5,1≤ai≤1051\le a_i\le10^5,1≤x,y≤n1\le x,y\le n。

所有测试点均独立计分且分值相同。

子任务编号 分值 特殊限制
1 20 n,q≤2000n,q\le2000
2 40 ai≤100a_i\le100
3 无特殊限制