#include <stdio.h>
#include <string.h>
const long long MOD = 12345678901;
unsigned long long fibonacci(unsigned long long n)
{
unsigned long long fib[2][2]= {{1,1},{1,0}},ret[2][2]= {{1,0},{0,1}},tmp[2][2]= {{0,0},{0,0}};
int i,j,k;
while(n)
{
if(n&1)
{
for(i=0; i<2; i++) for(j=0; j<2; j++) for(k=0; k<2; k++)
tmp[i][j]=(tmp[i][j]+ret[i][k]*fib[k][j])%MOD;
for(i=0; i<2; i++) for(j=0; j<2; j++) ret[i][j]=tmp[i][j];
}
for(i=0; i<2; i++) for(j=0; j<2; j++) for(k=0; k<2; k++)
tmp[i][j]=(tmp[i][j]+fib[i][k]*fib[k][j])%MOD;
for(i=0; i<2; i++) for(j=0; j<2; j++) fib[i][j]=tmp[i][j];
n/=2;
}
return (ret[0][1]);
}
int main(){
int t;
unsigned long long n;
while(t--){
n++;
printf("%llu\n", fibonacci
(n
)); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmNvbnN0IGxvbmcgbG9uZyBNT0QgPSAxMjM0NTY3ODkwMTsKCnVuc2lnbmVkIGxvbmcgbG9uZyBmaWJvbmFjY2kodW5zaWduZWQgbG9uZyBsb25nIG4pCnsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWJbMl1bMl09IHt7MSwxfSx7MSwwfX0scmV0WzJdWzJdPSB7ezEsMH0sezAsMX19LHRtcFsyXVsyXT0ge3swLDB9LHswLDB9fTsKICAgIGludCBpLGosazsKICAgIHdoaWxlKG4pCiAgICB7CiAgICAgICAgaWYobiYxKQogICAgICAgIHsKICAgICAgICAgICAgbWVtc2V0KHRtcCwwLHNpemVvZiB0bXApOwogICAgICAgICAgICBmb3IoaT0wOyBpPDI7IGkrKykgZm9yKGo9MDsgajwyOyBqKyspIGZvcihrPTA7IGs8MjsgaysrKQogICAgICAgICAgICAgICAgICAgICAgICB0bXBbaV1bal09KHRtcFtpXVtqXStyZXRbaV1ba10qZmliW2tdW2pdKSVNT0Q7CiAgICAgICAgICAgIGZvcihpPTA7IGk8MjsgaSsrKSBmb3Ioaj0wOyBqPDI7IGorKykgcmV0W2ldW2pdPXRtcFtpXVtqXTsKICAgICAgICB9CiAgICAgICAgbWVtc2V0KHRtcCwwLHNpemVvZiB0bXApOwogICAgICAgIGZvcihpPTA7IGk8MjsgaSsrKSBmb3Ioaj0wOyBqPDI7IGorKykgZm9yKGs9MDsgazwyOyBrKyspCiAgICAgICAgICAgICAgICAgICAgdG1wW2ldW2pdPSh0bXBbaV1bal0rZmliW2ldW2tdKmZpYltrXVtqXSklTU9EOwogICAgICAgIGZvcihpPTA7IGk8MjsgaSsrKSBmb3Ioaj0wOyBqPDI7IGorKykgZmliW2ldW2pdPXRtcFtpXVtqXTsKICAgICAgICBuLz0yOwogICAgfQogICAgcmV0dXJuIChyZXRbMF1bMV0pOwp9CgppbnQgbWFpbigpewogICAgaW50IHQ7CiAgICBzY2FuZigiJWQiLCZ0KTsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuOwogICAgd2hpbGUodC0tKXsKICAgICAgICBzY2FuZigiJWxsdSIsJm4pOwogICAgICAgIG4rKzsKICAgICAgICBwcmludGYoIiVsbHVcbiIsIGZpYm9uYWNjaShuKSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=