#include<iostream>
(720)#include<cstdio>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
long long dp[n + 1];
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;
for(int i = 4; i <= n; i++){
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
}
printf("%lld", dp[n]);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
void main(){
int stepNum,sum;
scanf("%d",&stepNum);
sum=stepToN(stepNum);
printf("total methods:"+sum);
}
int stepToN(int stepNum){
int totalmeth=0
if(stepNum<0)
return 0;
if(stepNum==1)
totalmeth=1;
if(stepNum==2)
totalmeth=2;
if(stepNum==3)
totalmeth=4;
else
totalmeth=stepToN(stepNum-1)+stepToN(stepNum-2)+stepToN(stepNum-3);
return totalmeth;
}
int taijie(int n,std::list<std::list<int>> & o) {
o.clear();
std::list<int> l;
if ( n<=0 ) {
return 0;
}
else if ( n==1 ) {
l.push_back(1);
o.push_back(l);
return 1;
}
std::list<std::list<int>> & o1;
taijie(n-1,o1);
for ( std::list<std::list<int>>::iterator it=o1.begin();it!=o1.end();++it ) {
(*it).push_front(1);
o.push_back(*it);
}
taijie(n-2,o1);
for ( std::list<std::list<int>>::iterator it=o1.begin();it!=o1.end();++it ) {
(*it).push_front(2);
o.push_back(*it);
}
taijie(n-3,o1);
for ( std::list<std::list<int>>::iterator it=o1.begin();it!=o1.end();++it ) {
(*it).push_front(3);
o.push_back(*it);
}
return o.size();
}