#include<bits/stdc++.h>
using namespace std;
long long n,m,st,ans;
struct A{
long long sight;
bool up;
}a[10010][110];
long long num[10010];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j].up>>a[i][j].sight;
if(a[i][j].up==1) num[i]++;
}
}
cin>>st;
long long k=a[1][st+1].sight;
ans+=a[1][st+1].sight;
if(k!=num[1]) k=(a[1][st+1].sight)%(num[1]);
long long j=st+1;
while(k!=0){
if(a[1][j].up==1) k--;
if(k==0) break;
j++;
if(j>m) j=1;
}
for(int i=2;i<=n;i++){
ans+=a[i][j].sight;
k=a[i][j].sight;
if(k!=num[i]) k=(a[i][j].sight)%(num[i]);
while(k!=0){
if(a[i][j].up==1) k--;
if(k==0) break;
j++;
if(j>m) j=1;
}
}
cout<<ans%20123;
return 0;
}