#include<iostream> #include<cstring> #include<cstdio> using namespace std; int a[2][2],b[2][2],n,q,_; void mul(int a[2][2],int b[2][2],int ans[2][2],int q){ int t[2][2]; memset(t,0,sizeof(t)); for(int i=0;i<=1;i++) for(int j=0;j<=1;j++) for(int k=0;k<=1;k++) t[i][j]=(t[i][j]+a[i][k]*b[k][j])%q; for(int i=0;i<=1;i++) for(int j=0;j<=1;j++) ans[i][j]=t[i][j]; } void init(){ a[0][0]=a[0][1]=a[1][0]=b[0][0]=b[1][1]=1; b[1][0]=b[0][1]=a[1][1]=0; } int main(){ scanf("%d",&_); for(int i=1;i<=_;i++){ scanf("%d%d",&n,&q); init();n++; while(n){ if(n&1)mul(a,b,b,q); n>>=1;mul(a,a,a,q); } printf("%d\n",b[1][0]); } return 0; }