#include <bits/stdc++.h>
#define ll int
#define pll pair<ll,ll>
#define db long double
#define foru(i,a,b) for(ll i=(a);i<=(b);i++)
#define ford(i,a,b) for(ll i=(a);i>=(b);i--)
#define ALL(a) (a).begin(),(a).end()
#define ROUND(i) fixed<<setprecision(i)
#define fi first
#define se second
using namespace std;
int NumTest=1,CurTest;
clock_t start_time_=clock();
namespace fasstIO {
const int SZ = 1 << 20;
char in[SZ], out[SZ];
int ip = 0, len = 0, op = 0;
inline char gc() {
if (ip == len) {
len = fread(in, 1, SZ, stdin);
ip = 0;
if (!len) return 0;
}
return in[ip++];
}
inline int readInt() {
int x = 0, sign = 1;
char c = gc();
while (c <= ' ' && c) c = gc();
if (c == '-') sign = -1, c = gc();
while (c >= '0' && c <= '9') {
x = x * 10 + c - '0';
c = gc();
}
return x * sign;
}
inline void flush() {
fwrite(out, 1, op, stdout);
op = 0;
}
inline void writeInt(int x, char end = '\n') {
if (x < 0) out[op++] = '-', x = -x;
char s[12];
int n = 0;
do s[n++] = x % 10 + '0', x /= 10; while (x);
while (n--) {
if (op == SZ) flush();
out[op++] = s[n];
}
if (op == SZ) flush();
out[op++] = end;
}
struct AutoFlush {
~AutoFlush() { flush(); }
} autoFlush;
}
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣶⣾⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡞⠀⠀⢀⣤⣴⣾⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣣⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣶⣾⣿⠃⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⣀⣀⣀⡤⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣶⣾⡟⠀
///⠀⠀⠀⠀⠀⠀⡰⢹⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀
///⠀⠀⠀⠀⠀⢠⣳⣿⣾⣿⣿⣿⣿⢋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀
///⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⡞⠀⠈⠙⠿⠿⠟⠛⠉⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀
///⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⡄⠀⠀⠀⠀⠀⠀⠐⡄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀
///⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⢿⣿⣿⠀⠀⡌ -TFA-⠀⠀ ⠀⢻⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣴⡶⠋⠁
///⠀⠀⠀⠀⢸⣿⣿⣿⣿⡟⢻⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣼⣿⣿⠗⢺⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀
///⠀⠀⠀⠀⢸⣿⣿⣿⣿⣇⣀⣻⣇⠈⣖⣄⠀⠀⠀⢀⡤⠖⣻⢍⣁⣀⣿⣏⡀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠀⠀⠀⠀
///⠀⠀⠀⠀⢸⡿⣿⣿⣿⡇⢻⢻⣿⣿⣶⡽⠂⠀⠀⠀⠀⢽⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣵⣶⠖⠋⠀⠀
///⠀⠀⠀⠀⢸⡇⢸⣿⣿⣿⡈⠘⢛⣿⢿⡇⠀⠀⠀⠀⠀⠈⠡⠼⠏⣻⣿⡿⢻⠏⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀
///⠀⠀⠀⠀⢸⠁⠈⣿⣿⣿⡇⠈⠪⠷⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠽⠷⠞⠃⠀⢸⣿⣿⣿⣿⢏⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣷⠀⠀⠀⠀⠀⠀⢀⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢸⣿⣿⣿⣏⣡⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣧⡀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠃⢸⣿⣿⣿⣿⣿⡟⠀⠉⠛⠣⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⡟⠙⠢⣄⠀⠀⠀⠒⢂⠠⠀⠀⠀⠀⠀⠀⢈⡠⠔⢻⣿⣿⡟⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡿⠇⠀⠀⡨⠋⢲⠤⣀⠈⠀⢀⣀⡀⠤⢖⠞⠉⠀⠀⢸⡟⠻⣄⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡇⠀⡠⠊⠐⡄⠀⠀⡀⠉⠉⠉⠀⠀⢀⠎⠀⠀⠀⠀⠟⠀⠀⠈⢢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡁⠀⠀⠁⣆⠏⠈⢓⠒⠋⠁⣄⠞⠀⠀⠀⠀⠀⠀⠐⢈⡤⠒⠛⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⡻⣠⠀⠀⠀⡿⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⡴⠋⠀⠳⡀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠁⠀⡟⠀⠀⠀⡇⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⢀⠜⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⠀⠀⠀⣀⠠⠞⠀⠀⢀⠇⠀⠀⠀⡇⠀⠀⠀⠀⢀⡆⠀⠀⠀⠀⠀⠀⡌⠀⢀⠂⠀⠀⠀⠀⠈⡄⠀⠀⠀⠀⠀⠀⠀⠀
///⠀⠀⠀⣠⠔⠊⠁⠀⠀⠀⠀⢸⠀⠀⠀⠀⡇⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⡇⠀⡜⠀⠀⠀⠀⠀⠀⢹⡀⠀⠀⠀⠀⠀⠀⠀
///⣠⣖⠉⠁⠀⠀⠀⠀⠀⠀⠀⡄⠀⠀⠀⠀⢰⣀⡀⠀⡼⠀⠀⠀⠒⠀⠀⠠⠂⠇⢠⠁⠀⠀⠀⠀⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀
///⠸⣟⣿⡇⠀⠀⠀⠀⠀⠀⢠⣷⣖⡒⣆⠀⢲⣷⣉⠞⣠⠖⠒⠒⠲⢤⣤⣀⣀⣰⡜⠀⠀⠀⠀⠀⠀⠀⠀⠸⡄⠀⠀⠀⠀⠀⠀
///⠀⠀⠈⢹⡀⠀⠀⠀⠀⠀⠀⢹⣽⣒⣼⣿⣿⣿⣧⡞⠓⠒⠀⢀⣴⣯⣾⣷⡘⢻⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀
const ll dx[]={+1,0,-1,0};
const ll dy[]={0,-1,0,+1};
ll n,m,q;
bool g[505][505];
pll opt[2500005];
ll par[2500005];
ll last[505][505];
ll id[505][505],k=0;
ll headq[2500005],nxtq[2500005],arrq[2500005],szq=0;
ll headc[2500005],nxtc[2500005],arrc[2500005],szc=0;
ll finish[20005];
ll result=0;
bool valid(ll x,ll y){
return 1<=x && x<=n && 1<=y && y<=m && g[x][y]==1;
}
void prebuild(){
memset(last,0x3f,sizeof(last));
ford(i,q,1){
auto [x,y]=opt[i];
par[i]=q+1;
foru(e,0,3){
ll nx=x+dx[e], ny=y+dy[e];
if(valid(nx,ny)){
par[i]=min(par[i],last[nx][ny]);
}
}
arrc[++szc]=i; nxtc[szc]=headc[par[i]]; headc[par[i]]=szc;
last[x][y]=i;
}
foru(i,1,n)foru(j,1,m)if(g[i][j]==1){
id[i][j]=++k;
ll to=q+1;
foru(e,0,3){
ll nx=i+dx[e], ny=j+dy[e];
if(valid(nx,ny))to=min(to,last[nx][ny]);
}
arrq[++szq]=k; nxtq[szq]=headq[to]; headq[to]=szq;
}
}
void DFS(ll u){
stack<pll>stk;
stk.push({u,-1});
while(stk.size()){
auto[u,t]=stk.top(); stk.pop();
if(t!=-1){
finish[u]=t;
continue;
}
ll p=id[opt[u].fi][opt[u].se];
ll old=finish[p];
finish[p]=u;
int j=headq[u];
while(j){
int p=arrq[j]; j=nxtq[j];
foru(x,1,k)if(x!=p)result=max(result,finish[x]);
}
stk.push({p,old});
int i=headc[u];
while(i){
ll v=arrc[i]; i=nxtc[i];
stk.push({v,-1});
}
}
}
void Uchiha_Sasuke(){
n=fasstIO::readInt();
m=fasstIO::readInt();
foru(i,1,n)foru(j,1,m)g[i][j]=fasstIO::readInt();
q=fasstIO::readInt();
foru(i,1,q) {
opt[i].fi=fasstIO::readInt();
opt[i].se=fasstIO::readInt();
}
prebuild();
DFS(q+1);
cout<<result<<'\n';
}
signed main(){
// ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
if(fopen("task.inp","r"))
freopen("task.inp","r",stdin),
freopen("task.out","w",stdout);
srand(time(0));
//cin>>NumTest;
for(CurTest=1;CurTest<=NumTest;CurTest++)Uchiha_Sasuke();
clock_t finish_time_=clock();
double run_time_=((double)finish_time_-(double)start_time_)/CLOCKS_PER_SEC;
cerr<<"\n\n------------------------------------------------\nRun Time : "<<fixed<<setprecision(3)<<run_time_<<"s\n\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgaW50CiNkZWZpbmUgcGxsIHBhaXI8bGwsbGw+CiNkZWZpbmUgZGIgbG9uZyBkb3VibGUKI2RlZmluZSBmb3J1KGksYSxiKSBmb3IobGwgaT0oYSk7aTw9KGIpO2krKykKI2RlZmluZSBmb3JkKGksYSxiKSBmb3IobGwgaT0oYSk7aT49KGIpO2ktLSkKI2RlZmluZSBBTEwoYSkgKGEpLmJlZ2luKCksKGEpLmVuZCgpCiNkZWZpbmUgUk9VTkQoaSkgZml4ZWQ8PHNldHByZWNpc2lvbihpKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBOdW1UZXN0PTEsQ3VyVGVzdDsKY2xvY2tfdCBzdGFydF90aW1lXz1jbG9jaygpOwpuYW1lc3BhY2UgZmFzc3RJTyB7CiAgICBjb25zdCBpbnQgU1ogPSAxIDw8IDIwOwogICAgY2hhciBpbltTWl0sIG91dFtTWl07CiAgICBpbnQgaXAgPSAwLCBsZW4gPSAwLCBvcCA9IDA7CgogICAgaW5saW5lIGNoYXIgZ2MoKSB7CiAgICAgICAgaWYgKGlwID09IGxlbikgewogICAgICAgICAgICBsZW4gPSBmcmVhZChpbiwgMSwgU1osIHN0ZGluKTsKICAgICAgICAgICAgaXAgPSAwOwogICAgICAgICAgICBpZiAoIWxlbikgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbltpcCsrXTsKICAgIH0KCiAgICBpbmxpbmUgaW50IHJlYWRJbnQoKSB7CiAgICAgICAgaW50IHggPSAwLCBzaWduID0gMTsKICAgICAgICBjaGFyIGMgPSBnYygpOwogICAgICAgIHdoaWxlIChjIDw9ICcgJyAmJiBjKSBjID0gZ2MoKTsKICAgICAgICBpZiAoYyA9PSAnLScpIHNpZ24gPSAtMSwgYyA9IGdjKCk7CiAgICAgICAgd2hpbGUgKGMgPj0gJzAnICYmIGMgPD0gJzknKSB7CiAgICAgICAgICAgIHggPSB4ICogMTAgKyBjIC0gJzAnOwogICAgICAgICAgICBjID0gZ2MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHggKiBzaWduOwogICAgfQoKICAgIGlubGluZSB2b2lkIGZsdXNoKCkgewogICAgICAgIGZ3cml0ZShvdXQsIDEsIG9wLCBzdGRvdXQpOwogICAgICAgIG9wID0gMDsKICAgIH0KCiAgICBpbmxpbmUgdm9pZCB3cml0ZUludChpbnQgeCwgY2hhciBlbmQgPSAnXG4nKSB7CiAgICAgICAgaWYgKHggPCAwKSBvdXRbb3ArK10gPSAnLScsIHggPSAteDsKICAgICAgICBjaGFyIHNbMTJdOwogICAgICAgIGludCBuID0gMDsKICAgICAgICBkbyBzW24rK10gPSB4ICUgMTAgKyAnMCcsIHggLz0gMTA7IHdoaWxlICh4KTsKICAgICAgICB3aGlsZSAobi0tKSB7CiAgICAgICAgICAgIGlmIChvcCA9PSBTWikgZmx1c2goKTsKICAgICAgICAgICAgb3V0W29wKytdID0gc1tuXTsKICAgICAgICB9CiAgICAgICAgaWYgKG9wID09IFNaKSBmbHVzaCgpOwogICAgICAgIG91dFtvcCsrXSA9IGVuZDsKICAgIH0KCiAgICBzdHJ1Y3QgQXV0b0ZsdXNoIHsKICAgICAgICB+QXV0b0ZsdXNoKCkgeyBmbHVzaCgpOyB9CiAgICB9IGF1dG9GbHVzaDsKfQovLy/ioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDiooDio6DioYTioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qOA4qOg4qO24qO+4qO/4qO/4qGH4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCACi8vL+KggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKigOKjpOKhnuKggOKggOKigOKjpOKjtOKjvuKjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kgh+KggOKggOKggOKjgOKggOKggOKggOKggOKggOKggOKggAovLy/ioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDio6Dio7bio7/io7/io6Pio7Tio7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io6Tio7bio77io7/ioIPioIDioIDioIDioIDioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qKA4qO04qO+4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qG/4qCB4qCA4qOA4qOA4qOA4qGk4qCA4qCA4qCACi8vL+KggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKigOKjtOKjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kgh+KggOKggOKggAovLy/ioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDiooDio7zio7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/ioIDioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qKA4qO04qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qGP4qCA4qCA4qCA4qCACi8vL+KggOKggOKggOKggOKggOKggOKggOKjoOKjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+KjpOKjtuKjvuKhn+KggAovLy/ioIDioIDioIDioIDioIDioIDiobDiornior/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/ioL/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/ioIHioIAKLy8v4qCA4qCA4qCA4qCA4qCA4qKg4qOz4qO/4qO+4qO/4qO/4qO/4qO/4qKL4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qOn4qO34qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qCH4qCA4qCACi8vL+KggOKggOKggOKggOKggOKjuOKjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+KhnuKggOKgiOKgmeKgv+Kgv+Kgn+Kgm+KgieKggOKggOKiueKjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Khv+KggOKggOKggAovLy/ioIDioIDioIDioIDiooDio7/io7/io7/io7/io7/io7/io7/io7/ioIHioIDioIDioYTioIDioIDioIDioIDioIDioIDioJDioYTio7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/ioIHioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qK44qO/4qO/4qO/4qO/4qO/4qK/4qO/4qO/4qCA4qCA4qGMIC1URkEt4qCA4qCAIOKggOKiu+Kjv+Kjv+Khh+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjp+KjtOKhtuKgi+KggQovLy/ioIDioIDioIDioIDiorjio7/io7/io7/io7/ioZ/iorvio7/io6fioYDioIDioIDioIDioIDioIDioIDioIDioIDioIDio4Dio4Dio7zio7/io7/ioJfiorrio7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/ioJ/ioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qK44qO/4qO/4qO/4qO/4qOH4qOA4qO74qOH4qCI4qOW4qOE4qCA4qCA4qCA4qKA4qGk4qCW4qO74qKN4qOB4qOA4qO/4qOP4qGA4qK44qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qO/4qCL4qCA4qCA4qCA4qCACi8vL+KggOKggOKggOKggOKiuOKhv+Kjv+Kjv+Kjv+Khh+Kiu+Kiu+Kjv+Kjv+KjtuKhveKgguKggOKggOKggOKggOKiveKjteKjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+Kjv+KjteKjtuKgluKgi+KggOKggAovLy/ioIDioIDioIDioIDiorjioYfiorjio7/io7/io7/ioYjioJjiopvio7/ior/ioYfioIDioIDioIDioIDioIDioIjioKHioLzioI/io7vio7/iob/iorvioI/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/io7/ioJ/ioIHioIDioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qK44qCB4qCI4qO/4qO/4qO/4qGH4qCI4qCq4qC34qCa4qCB4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCI4qC94qC34qCe4qCD4qCA4qK44qO/4qO/4qO/4qO/4qKP4qO/4qO/4qO/4qGf4qCB4qCA4qCA4qCA4qCA4qCA4qCACi8vL+KggOKggOKggOKggOKggOKggOKggOKiueKjv+Kjv+Kjt+KggOKggOKggOKggOKggOKggOKigOKioOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKioOKiuOKjv+Kjv+Kjv+Kjj+KjoeKjv+Kjv+Kjv+Kjh+KggOKggOKggOKggOKggOKggOKggAovLy/ioIDioIDioIDioIDioIDioIDioIDioIDio7/io7/io7/io6fioYDioIDioIDioIDioIDioIDioInioIDioIDioIDioIDioIDioIDioIDioIDioIDiobDioIPiorjio7/io7/io7/io7/io7/ioZ/ioIDioInioJvioKPioIDioIDioIDioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCY4qO/4qO/4qGf4qCZ4qCi4qOE4qCA4qCA4qCA4qCS4qKC4qCg4qCA4qCA4qCA4qCA4qCA4qCA4qKI4qGg4qCU4qK74qO/4qO/4qGf4qO/4qCP4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCACi8vL+KggOKggOKggOKggOKggOKggOKggOKggOKggOKiu+Khv+Kgh+KggOKggOKhqOKgi+KisuKgpOKjgOKgiOKggOKigOKjgOKhgOKgpOKiluKgnuKgieKggOKggOKiuOKhn+Kgu+KjhOKgj+KggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKggAovLy/ioIDioIDioIDioIDioIDioIDioIDioIDioIDioIjioYfioIDioaDioIrioJDioYTioIDioIDioYDioInioInioInioIDioIDiooDioI7ioIDioIDioIDioIDioJ/ioIDioIDioIjioqLioYDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qKw4qGB4qCA4qCA4qCB4qOG4qCP4qCI4qKT4qCS4qCL4qCB4qOE4qCe4qCA4qCA4qCA4qCA4qCA4qCA4qCQ4qKI4qGk4qCS4qCb4qGE4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCACi8vL+KggOKggOKggOKggOKggOKggOKggOKggOKggOKggOKhsOKhu+KjoOKggOKggOKggOKhv+KggOKggOKggOKggOKggOKggOKhnOKggOKggOKggOKggOKggOKggOKggOKhtOKgi+KggOKgs+KhgOKguOKhgOKggOKggOKggOKggOKggOKggOKggOKggOKggAovLy/ioIDioIDioIDioIDioIDioIDioIDioIDioIDioZzioIHioIDioZ/ioIDioIDioIDioYfioIDioIDioIDioIDioIDiorDioIHioIDioIDioIDioIDioIDiooDioJzioIDioIDioIDioIDioIDioIDiorPioIDioIDioIDioIDioIDioIDioIDioIDioIAKLy8v4qCA4qCA4qCA4qCA4qCA4qCA4qOA4qCg4qCe4qCA4qCA4qKA4qCH4qCA4qCA4qCA4qGH4qCA4qCA4qCA4qCA4qKA4qGG4qCA4qCA4qCA4qCA4qCA4qCA4qGM4qCA4qKA4qCC4qCA4qCA4qCA4qCA4qCI4qGE4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCACi8vL+KggOKggOKggOKjoOKglOKgiuKggeKggOKggOKggOKggOKiuOKggOKggOKggOKggOKhh+KggOKggOKggOKggOKhnOKggOKggOKggOKggOKggOKggOKggOKhh+KggOKhnOKggOKggOKggOKggOKggOKggOKiueKhgOKggOKggOKggOKggOKggOKggOKggAovLy/io6Dio5bioInioIHioIDioIDioIDioIDioIDioIDioIDioYTioIDioIDioIDioIDiorDio4DioYDioIDiobzioIDioIDioIDioJLioIDioIDioKDioILioIfioqDioIHioIDioIDioIDioIDioIDioIDioIDioofioIDioIDioIDioIDioIDioIDioIAKLy8v4qC44qOf4qO/4qGH4qCA4qCA4qCA4qCA4qCA4qCA4qKg4qO34qOW4qGS4qOG4qCA4qKy4qO34qOJ4qCe4qOg4qCW4qCS4qCS4qCy4qKk4qOk4qOA4qOA4qOw4qGc4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qCA4qC44qGE4qCA4qCA4qCA4qCA4qCA4qCACi8vL+KggOKggOKgiOKiueKhgOKggOKggOKggOKggOKggOKggOKiueKjveKjkuKjvOKjv+Kjv+Kjv+Kjp+KhnuKgk+KgkuKggOKigOKjtOKjr+KjvuKjt+KhmOKiu+KggeKggOKggOKggOKggOKggOKggOKggOKggOKggOKio+KggOKggApjb25zdCBsbCBkeFtdPXsrMSwwLC0xLDB9Owpjb25zdCBsbCBkeVtdPXswLC0xLDAsKzF9OwpsbCBuLG0scTsKYm9vbCBnWzUwNV1bNTA1XTsKcGxsIG9wdFsyNTAwMDA1XTsKbGwgcGFyWzI1MDAwMDVdOwpsbCBsYXN0WzUwNV1bNTA1XTsKbGwgaWRbNTA1XVs1MDVdLGs9MDsKbGwgaGVhZHFbMjUwMDAwNV0sbnh0cVsyNTAwMDA1XSxhcnJxWzI1MDAwMDVdLHN6cT0wOwpsbCBoZWFkY1syNTAwMDA1XSxueHRjWzI1MDAwMDVdLGFycmNbMjUwMDAwNV0sc3pjPTA7CmxsIGZpbmlzaFsyMDAwNV07CmxsIHJlc3VsdD0wOwoKYm9vbCB2YWxpZChsbCB4LGxsIHkpewoJcmV0dXJuIDE8PXggJiYgeDw9biAmJiAxPD15ICYmIHk8PW0gJiYgZ1t4XVt5XT09MTsKfQp2b2lkIHByZWJ1aWxkKCl7CgltZW1zZXQobGFzdCwweDNmLHNpemVvZihsYXN0KSk7Cglmb3JkKGkscSwxKXsKCQlhdXRvIFt4LHldPW9wdFtpXTsKCQlwYXJbaV09cSsxOwoJCWZvcnUoZSwwLDMpewoJCQlsbCBueD14K2R4W2VdLCBueT15K2R5W2VdOwoJCQoJCQlpZih2YWxpZChueCxueSkpewoJCQkJcGFyW2ldPW1pbihwYXJbaV0sbGFzdFtueF1bbnldKTsKCQkJfQoJCX0KCQlhcnJjWysrc3pjXT1pOyBueHRjW3N6Y109aGVhZGNbcGFyW2ldXTsgaGVhZGNbcGFyW2ldXT1zemM7CgkJbGFzdFt4XVt5XT1pOwoJfQkKCglmb3J1KGksMSxuKWZvcnUoaiwxLG0paWYoZ1tpXVtqXT09MSl7CgkJaWRbaV1bal09KytrOwoJCWxsIHRvPXErMTsKCQlmb3J1KGUsMCwzKXsKCQkJbGwgbng9aStkeFtlXSwgbnk9aitkeVtlXTsKCQkJaWYodmFsaWQobngsbnkpKXRvPW1pbih0byxsYXN0W254XVtueV0pOwoJCX0KCQlhcnJxWysrc3pxXT1rOyBueHRxW3N6cV09aGVhZHFbdG9dOyBoZWFkcVt0b109c3pxOwoJfQoKCn0KCnZvaWQgREZTKGxsIHUpewoJc3RhY2s8cGxsPnN0azsKCXN0ay5wdXNoKHt1LC0xfSk7CgoJd2hpbGUoc3RrLnNpemUoKSl7CgkJYXV0b1t1LHRdPXN0ay50b3AoKTsgc3RrLnBvcCgpOwoKCQlpZih0IT0tMSl7CgkJCWZpbmlzaFt1XT10OwoJCQljb250aW51ZTsKCQl9CgoJCWxsIHA9aWRbb3B0W3VdLmZpXVtvcHRbdV0uc2VdOwoJCWxsIG9sZD1maW5pc2hbcF07CgkJZmluaXNoW3BdPXU7CgoJCWludCBqPWhlYWRxW3VdOwoJCXdoaWxlKGopewoJCQlpbnQgcD1hcnJxW2pdOyBqPW54dHFbal07CgkJCWZvcnUoeCwxLGspaWYoeCE9cClyZXN1bHQ9bWF4KHJlc3VsdCxmaW5pc2hbeF0pOwoJCX0KCgkJc3RrLnB1c2goe3Asb2xkfSk7CgoJCWludCBpPWhlYWRjW3VdOwoJCXdoaWxlKGkpewoJCQlsbCB2PWFycmNbaV07IGk9bnh0Y1tpXTsKCQkJc3RrLnB1c2goe3YsLTF9KTsKCQl9CgoJfQoKCn0KCgp2b2lkIFVjaGloYV9TYXN1a2UoKXsKCW49ZmFzc3RJTzo6cmVhZEludCgpOwoJbT1mYXNzdElPOjpyZWFkSW50KCk7Cglmb3J1KGksMSxuKWZvcnUoaiwxLG0pZ1tpXVtqXT1mYXNzdElPOjpyZWFkSW50KCk7CglxPWZhc3N0SU86OnJlYWRJbnQoKTsKCWZvcnUoaSwxLHEpIHsKCSAgICBvcHRbaV0uZmk9ZmFzc3RJTzo6cmVhZEludCgpOwoJICAgIG9wdFtpXS5zZT1mYXNzdElPOjpyZWFkSW50KCk7Cgl9CgoJcHJlYnVpbGQoKTsKCURGUyhxKzEpOwoKCWNvdXQ8PHJlc3VsdDw8J1xuJzsKfQoKc2lnbmVkIG1haW4oKXsKICAgIC8vIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKICAgIGlmKGZvcGVuKCJ0YXNrLmlucCIsInIiKSkKICAgIGZyZW9wZW4oInRhc2suaW5wIiwiciIsc3RkaW4pLAogICAgZnJlb3BlbigidGFzay5vdXQiLCJ3IixzdGRvdXQpOwogICAgc3JhbmQodGltZSgwKSk7CgogICAgLy9jaW4+Pk51bVRlc3Q7CiAgICBmb3IoQ3VyVGVzdD0xO0N1clRlc3Q8PU51bVRlc3Q7Q3VyVGVzdCsrKVVjaGloYV9TYXN1a2UoKTsKCgogICAgY2xvY2tfdCBmaW5pc2hfdGltZV89Y2xvY2soKTsKICAgIGRvdWJsZSBydW5fdGltZV89KChkb3VibGUpZmluaXNoX3RpbWVfLShkb3VibGUpc3RhcnRfdGltZV8pL0NMT0NLU19QRVJfU0VDOwogICAgY2Vycjw8IlxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblJ1biBUaW1lIDogIjw8Zml4ZWQ8PHNldHByZWNpc2lvbigzKTw8cnVuX3RpbWVfPDwic1xuXG4iOwoKICAgIHJldHVybiAwOwp9Cg==