#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
int t,mod;
int pan(int x,int y,int n)
{
int sx=x,sy=y;
while(1)
{x=(x+y)%mod;
y=(x+y)%mod;
if(!x) return 1;
if(!y) return 0;
if(x==sx&&y==sy&&n) return 3;
n++;}
}
int main()
{
int x,y,ans;
cin>>t>>mod;
while(t--)
{
cin>>x>>y;
ans=pan(x,y,0);
if(ans==3)
cout<<"error"<<endl;
if(ans==1) cout<<1<<endl;
if(ans==2) cout<<2<<endl;
}
return 0;
}
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
int t,mod,ans;
void pan(int x,int y,int n)
{
int sx=x,sy=y;
while(1)
{
x=(x+y)%mod;
y=(x+y)%mod;
if(!x) {ans=1;return;}
if(!y) {ans=2;return;}
if(x==sx&&y==sy&&n) {ans=3;return;}
n++;}
}
int main()
{
int x,y;
cin>>t>>mod;
while(t--)
{
cin>>x>>y;
pan(x,y,0);
if(ans==3)
cout<<"error"<<endl;
if(ans==1) cout<<1<<endl;
if(ans==2) cout<<2<<endl;
}
return 0;
}
没用记忆化,用了记忆化全给我rt