//NOI.1.12.6寻宝
#include<stdio.h>
#define N 10010
#define M 110
struct condition{
int is;
int num;
};
struct condition con[N*M];
int game(int n,int m,int start){
int i,cnt=0,floor=start;
int x,jsq,louti,k;
for(i=0;i<n;i++){
cnt+=con[floor].num;
jsq=0;
x=con[floor].num;
louti=0;
for(k=0;k<m;k++){
if(con[(floor/m)*m+(floor+k)%m].is==1){
louti++;
}
}
if(x>louti){
x%=louti;
}
while(1){
if(con[floor].is==1){
jsq++;
if(jsq==x){
break;
}
}
floor=(floor/m)*m+(floor+1)%m;
}
floor+=m;
if(cnt>=20123){
cnt%=20123;
}
}
return cnt;
}
int main(){
int n,m,k,i,start;
scanf("%d %d",&n,&m);
k=n*m;
for(i=0;i<k;i++){
scanf("%d %d",&con[i].is,&con[i].num);
}
scanf("%d",&start);
int cnt=game(n,m,start);
printf("%d",cnt);
return 0;
}