#include <stdio.h>
#include <map>
#include <string>
#define ll long long
using namespace std;
int read(){
int a1=0,k1=1;char c1=getchar();
while(c1<'0'||c1>'9'){
if(c1=='-')k1=-1;c1=getchar();
}
while(c1>='0'&&c1<='9'){
a1=a1*10+c1-'0';
c1=getchar();
}
return a1*k1;
}
inline void out1(ll n) {
if(n < 0)
putchar ('-') , n = -n;
if(n > 9)
out1(n / 10);
putchar(n % 10 + '0');
}
inline void out(ll n){
out1(n);printf("\n");
}
int n,m;
map<string,bool>mp;
int/*signed*/ main(){
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
int t=read(),i,Mod=read();
while(t--){
n=read();m=read();i=0;
while(++i){
if(n==0&&m!=0){
printf("1\n");break;
}
if(n!=0&&m==0){
printf("2\n");break;
}
string a=""+n,b=""+m;
if(mp[a+b]){
printf("error\n");break;
}
else {
mp[a+b]=true;
}
if(i&1){
n=(n+m)%Mod;
}
else {
m=(n+m)%Mod;
}
// printf("%d %d\n",n,m);
}
}
return 0;
}