#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int MAX=1e6+1,mod=20123;
struct rooms{
bool f;
int num;
}mp[10001][101];
int n,m,x,t[MAX],key[MAX],ans,k,cnt;
void dfs(int flr,int tmp,bool flg){
if(flr==n+1)return;
if(flg){
k=mp[flr][tmp].num;
ans+=k;
ans%=mod;
}
if(mp[flr][tmp].f){
cnt++;
if(cnt==k)dfs(flr+1,tmp,true);
else dfs(flr,(tmp-1<0?m-1:tmp-1),false);
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n*m;i++)scanf("%d%d",&t[i],&key[i]);
cin>>x;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int idx=(i-1)*m+j;
mp[i][j-1].f=t[idx];
mp[i][j-1].num=key[idx];
}
}
dfs(1,x,true);
cout<<ans<<'\n';
return 0;
}