/*#include <stdio.h>
long long int f(int n, int k)
{
if (k==0){
return 1;
}
else if (k%2==0){
long long int x = f(n, k/2);
return x*x;
}
else{
long long int x=f(n, k/2);
return n*x*x;
}
}
int main()
{
int n, k;
scanf("%d %d", &n, &k);
printf ("%lld", f(n, k));
return 0;
}*/
#include <stdio.h>
int arr[100101]={};
int f(int n)
{
if (arr[n]!=0){
return arr[n];
}
if(n<0)
return 0;
if (n==0){
return 1;
}
return arr[n]=(f(n-1)+f(n-2)+f(n-3))%1000;
}
int main()
{
int n;
scanf ("%d", &n);
printf ("%d", f(n));
return 0;
}
/*
4
1. 1111
2. 1112*4
3. 13*2
4. 22
=8
6
1. 111111
2. 11112 *5
3. 1113 *4
4. 123 *6
5. 33
6. 222
7. 2211 *6
=24
3
1. 111
2. 12*2
3. 3
=4
*/