#include<iostream> #include<string> #include<string> #include<string.h> #include<stdio.h> #include<queue> #include<math.h> #include<vector> #include<stdlib.h> #include<algorithm> #define maxn 210 using namespace std; typedef long long LL; void gcd(LL a , LL b ,LL &d, LL &x,LL &y){ if(!b){ d = a ; x = 1; y = 0; return ; } else{ gcd(b , a % b ,d , y , x); y -= x * (a / b); return ; } } int main(){ LL f[maxn],a,b,k; int flag,t; cin>>t; memset(f,0,sizeof(f)); for(int i=1;i<2*t;i+=2){ cin>>f[i]; } for(int i=0;i<=10000;i++){ a=i;flag=1; LL k , b , d; LL c = (f[3] - a * a * f[1]); gcd(10001, a + 1, d , k, b); if(c% d) continue; b = b * c / d; for(int j=2;j<=2*t;j++){ if(j&1){ if(f[j]!=((a*f[j-1]+b)%10001)){ flag=0; break; } }else{ f[j]=(a*f[j-1]+b)%10001; } } if(flag) break; } for(int j=2;j<=2*t;j+=2){ cout<<f[j]<<endl; } return 0; }