#include <bits/stdc++.h>
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define ll long long
using namespace std;
const ll N=2e5+5,INF=1e12;
ll a[N],ans,c[N],b[N],n,k,m,x;
set <ll> s;
pair <ll,ll> p[N];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin >> n >> k >> m;
for (int i=1; i<=n; i++){
cin >> a[i];
}
for (int i=1; i<=m; i++){
cin >> p[i].f >> p[i].s;
b[p[i].f]=p[i].s;
}
for (int i=1; i<=m; i++){
s.insert(p[i].f);
c[p[i].f]=0;
// cout<<p[i].f<<endl;
}
x=1; ans=INF;
for (int i=1; i<=n; i++){
c[a[i]]++;
// cout<<c[0]<<" "<<c[1]<<endl;
if (c[a[i]]==b[a[i]]){
s.erase(s.find(a[i]));
}
// cout<<s.size()<<endl;
if (s.size()==0){
while (x<=i){
if (c[a[x]]-1>=b[a[x]]) {
c[a[x]]--; x++; }
else break;
}
// cout<<"I: "<<i<<" "<<x<<endl;
ans=min(ans,i-x+1);
// cout<<ans<<endl;
}
}
if (ans==INF) cout<<"impossible"<< endl; else
cout << ans << endl;
}