#include<bits/stdc++.h>
using namespace std;
char dp[10005][10005];
bitset<10005> vis[10005];
int t,p,x,y;
int dfs(int a,int b,bool step){
if (dp[a][b])return dp[a][b];
if (a%p==0||b%p==0)return a%p==0?1:2;
if (vis[a][b])return -1;
vis[a][b]=1;
if (step){
dp[(a+b)%p][b]=dfs((a+b)%p,b,0);
return dp[(a+b)%p][b];
}
else{
dp[a][(a+b)%p]=dfs(a,(a+b)%p,1);
return dp[a][(a+b)%p];
}
}
signed main(){
cin>>t>>p;
memset(dp,0,sizeof dp);
while(t--){
cin>>x>>y;
char x=dfs(x,y,1);
if (x==-1)cout<<"error\n";
else cout<<(short)x<<'\n';
}
return 0;
}