#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define cmax(a,b) a=max(a,b)
#define cmin(a,b) a=min(a,b)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define sz(x) (int)x.size()
// #define int long long
void solve();
signed main() {
ios::sync_with_stdio(0); cin.tie(0);
solve();
return 0;
}
int n, k, q;
vector<int> a, mini;
void solve() {
cin >> n >> k >> q; int bq=q;
vector<int> cntocc(k);
a.resize(n); for (auto &x: a) cin >> x, cntocc[x]++;
mini.resize(k);
int cnt=0;
while (q--) {
int x, m; cin >> x >> m;
mini[x]=m;
if (cntocc[x]<m) {
cout << "impossible" << endl;
return;
}
}
int ans=n, pos=-1;
vector<int> comp(k);
for (int i=0; i<n; i++) {
if (i) {
if (comp[a[i-1]]==mini[a[i-1]]) cnt--;
comp[a[i-1]]--;
}
while (pos+1<n && cnt<bq) {
pos++;
comp[a[pos]]++;
if (comp[a[pos]]==mini[a[pos]]) cnt++;
}
if (cnt==bq) cmin(ans, pos-i+1);
}
cout << ans << endl;
}