#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<algorithm>
#include<string>
using namespace std;
typedef long long ll;
const int mod=10000;
struct matrix
{
ll m[5][5];
};
matrix mutil(matrix a,matrix b)
{
matrix c;
memset(c.m,0,sizeof(c.m));//初始化
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
for(int k=1;k<=3;k++)
{
c.m[i][j]+=a.m[i][k]*b.m[k][j]%mod;
}
c.m[i][j]%=mod;
}
}
return c;
}
matrix power(matrix A,int k)
{
matrix ans;
ans.m[1][1]=ans.m[2][2]=ans.m[3][3]=1;
ans.m[1][2]=ans.m[1][3]=ans.m[2][1]=ans.m[2][3]=ans.m[3][1]=ans.m[3][2]=0;
while(k)
{
if(k&1)
{
ans=mutil(ans,A);
k--;
}
k>>=1;
A=mutil(A,A);
}
return ans;
}
int main()
{
int n,res;
while(scanf("%d",&n))
{
if(n==-1)
break;
if(n==0)
{
printf("%d\n",0);
continue;
}
if(n==1)
{
printf("%d\n",1);
continue;
}
if(n==2)
{
printf("%d\n",1);
continue;
}
matrix A;//初始化
A.m[1][1]=A.m[1][2]=A.m[2][2]=A.m[2][3]=A.m[3][2]=1;
A.m[1][3]=A.m[2][1]=A.m[3][1]=A.m[3][3]=0;
matrix ans=power(A,n-2);
res=(ans.m[1][1]+ans.m[1][2])%mod;
printf("%d\n",res);
}
}
08-20