/*#include<stdio.h>
int a=0, b=1;
int f(int n)
{
if(b<=n)a=a+b;
if(b==n)return a;
b=b+1;
f(n);
}
int main()
{
int n;
scanf("%d", &n);
printf("%d", f(n));
}
#include<stdio.h>
int a=1;
int f(int n)
{
if(n!=0)
{
a=a*n;
}
else return a;
n=n-1;
f(n);
}
int main()
{
int n;
scanf("%d", &n);
printf("%d", f(n));
}
#include<stdio.h>
int a[21]={};
int n;
int b=3;
int f(int n)
{
a[1]=1;
a[2]=1;
a[b]=a[b-1]+a[b-2];
if(b==n)
{
return a[b];
}
b=b+1;
f(n);
}
int main()
{
scanf("%d", &n);
if(n==1||n==2){printf("1");
return;}
printf("%d", f(n));
}
#include<stdio.h>
void f(int n)
{
if(n!=1)
{
if(n%2==0)
{
n=n/2;
printf("%d\n", n);
}
else
{
n=n*3+1;
printf("%d\n", n);
}
}
else return;
f(n);
}
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", n);
f(n);
}
#include<stdio.h>
void f(int n)
{
if(n==1) {
printf("%d\n", 1);
return;
}
if(n%2==0) {
f(n/2);
}
else {
f(n*3+1);
}
printf("%d\n", n);
}
int main()
{
int n;
scanf("%d", &n);
f(n);
}*/
/*
#include<stdio.h>
int b=0;
int c;
void a(int n)
{
c=c+1;
printf("*");
if(c==n)return;
if(c==b)
{
c=0;
f(n);
}
a(n);
}
void f(int n)
{
b=b+1;
printf("\n");
a(n);
}
int main()
{
int n;
scanf("%d", &n);
f(n);
}
*/
//#include<stdio.h>
//
//void k(int n)
//{
// if(n==0)return;
// k(n-1);
// printf("*");
//}
//
//void f(int n)
//{
// if(n==0) {
// return;
// }
// f(n-1);
// k(n);
// printf("\n");
//}
//
//
//int main()
//{
// int n;
// scanf("%d", &n);
// f(n);
//}
/*
#include<stdio.h>
void tri(int start, int mid, int last) {
if(start == mid && mid == last) {
printf("*");
return;
}
if(start==mid) {
printf("*\n");
tri(1, mid+1, last);
}
else {
printf("*");
tri(start+1, mid, last);
}
}
int main() {
int n;
scanf("%d", &n);
tri(1, 1, n);
}*/
#include<stdio.h>
int a;
int f(int n)
{
if(n==1) {
return 1;
}
else if(n==2) {
return 2;
}
else if(n==3) {
return 4;
}
return f(n-1) + f(n-2) + f(n-3);
}
int main()
{
int n;
scanf("%d", &n);
printf("%d", f(n));
}