#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, k, m;
cin >> n >> k >> m;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
vector<int> cnt(k);
for (int i = 0; i < m; i++) {
int x, s;
cin >> x >> s;
cnt[x] = s;
}
vector<int> f(k);
int done = 0;
auto add = [&](int x) {
f[x]++;
if (f[x] == cnt[x]) done++;
};
auto rem = [&](int x) {
if (f[x] == cnt[x]) done--;
f[x]--;
};
int ans = n + 1;
for (int l = 0, r = 0; l < n; l++) {
while (r < n && done < m) {
add(a[r++]);
}
if (done >= m) {
ans = min(ans, r - l);
}
rem(a[l]);
}
if (ans == n + 1) {
cout << "impossible\n";
} else {
cout << ans << '\n';
}
return 0;
}