代码
#include <iostream>

using namespace std;

int mod;
void mulMatrix(long long a[][2],long long b[][2])
{
    
long long t[2][2]={0};
    
for(int i=0;i<2;i++)
     
for(int j=0;j<2;j++)
      
for(int k=0;k<2;k++)
      {
          t[i][j] 
=((a[i][k] * b[k][j])%10000+t[i][j])%10000;
      }
      
for(int i=0;i<2;i++)
       
for(int j=0;j<2;j++)
       {
           a[i][j] 
= t[i][j];
       }
}
void mulpow(int n,long long a[][2],long long m[][2])
{
    
int t;
    
while(n!=0)
    {
        t 
= n%2;
        n
/=2;
        
if(t!=0)
        {
            mulMatrix(a,m);
        }
        mulMatrix(m,m);
    }
}
int main()
{
    
int n;
    
while(scanf("%d",&n)!=EOF&&n!=-1)
    {
        
long long m[2][2]={{0,1},{1,1}};
        
long long ans[2][2]={{1,0},{0,1}};
        
if(n==0||n==1)
        {
            printf(
"%d\n",n);
            
continue;
        }
        
else
        {
             mulpow(n
-1,ans,m);
        }
        
int res = ans[1][1]%10000;
        printf(
"%d\n",res);
    }

    
return 0;
}