#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { int i=0; int j=0; int n=0; cin>>n; vector<string> a; a.push_back("1"); a.push_back("1"); a.push_back("2"); for(i=3;i<n;i++) { string b=a[i-1]; string c=a[i-3]; string d; int count=0; int len1=b.size(); int len2=c.size(); int len=max(len1,len2); if(len1<len) { reverse(b.begin(),b.end()); for(j=len1;j<len;j++) { b+='0'; } reverse(b.begin(),b.end()); } else { reverse(c.begin(),c.end()); for(j=len2;j<len;j++) { c+='0'; } reverse(c.begin(),c.end()); } for(j=len-1;j>=0;j--) { int m=b[j]-'0'+c[j]-'0'+count; if(m>=10) { count=1; } else { count=0; } d+=m%10+'0'; } if(count) { d+='0'+count; } reverse(d.begin(),d.end()); a.push_back(d); } cout<<a[n-1]; return 0; }