Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi’an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia Liu’s Presents 1 and 2), he occasionally sets easy problem (for example, ‘the Coco-Cola Store’ in UVa OJ), to encourage more people to solve his problems :D
Given an array, your task is to find the k-th occurrence (from left to right) of an integer v. To make the problem more difficult (and interesting!), you’ll have to answer m such queries.
Input
There are several test cases. The first line of each test case contains two integers n, m (1 ≤ n, m ≤ 100,000), the number of elements in the array, and the number of queries. The next line contains n positive integers not larger than 1,000,000. Each of the following m lines contains two integer k and v(1 ≤ k ≤ n, 1 ≤ v ≤ 1, 000, 000). The input is terminated by end-of-file (EOF).
Output
For each query, print the 1-based location of the occurrence. If there is no such element, output ‘0’ instead.
Sample Input
84 13224321 13
24
32
42
Sample Output
2 0 7 0
/* UVA11991 Easy Problem from Rujia Liu? */
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6;
vector<int> vkth[N + 1];
int main()
{
int n, m, k, v, a;
while(~scanf("%d%d", &n, &m)) {
for(int i=1; i<=n; i++) {
scanf("%d", &a);
vkth[a].push_back(i);
}
while(m--) {
scanf("%d%d", &k, &v);
printf("%d\n", (int)vkth[v].size() < k ? 0 : vkth[v][k - 1]);
}
for(int i=1; i<=N; i++)
vkth[i].clear();
}
return 0;
}