#include <bits/stdc++.h>
using namespace std;
int n,m;
long long ans; //宝箱密码
int k; //从几号房上
bool flag[100][100]; //是否楼梯
long long ma[100][100]; //房间对应数字
int louti; //层
long long a[100]; //每层多少个有旗子的
int loading()
{
int i=0,j=0;
while(1)
{
cin>>flag[i][j];
cin>>ma[i][j];
if(j/(m-1)==1)
{
i++;
j=0;
}
else
{
j++;
}
if(i==n)
{
cin>>k;
break;
}
}
}
int main()
{
cin>>n>>m;
loading();
for(int i=0;i<=n-1;i++)
{
for(int j=0;j<=m-1;j++)
{
if(flag[i][j]==true)
a[i]+=1;
else
a[i]+=0;
}
}
int o=0;
int xh,l;
while(1)
{
//xh=循环几次;找旗子房间
xh=ma[o][k];
ans+=ma[o][k];
l=xh%a[o]; //l=循环余数;
for(int p=m-1;p>=0;p--)
{
if(flag[o][p]==true)
l--;
else
l+=0;
if(l==0||l==-1)
{
k=p;
o++;
break;
}
}
if(o==n)
break;
}
cout<<ans%20123;
return 0;
}