//
// AOJ0168　
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0168
//  implementation-1: 配るDP
//

#include <iostream>
using namespace std;

const long long INF = 1LL << 60;
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }

const int iMax=30+3;
long long dp[iMax];

long long calc(int n) {
	for(int i=0; i<iMax; i++) dp[i]=0;
	dp[0]=1;
	
	for(int i=0; i<=n; i++) {
		dp[i+1] = dp[i+1] + dp[i];
		dp[i+2] = dp[i+2] + dp[i];
		dp[i+3] = dp[i+3] + dp[i];
	}
	
	return dp[n];
}


int main() {
	int N=1;
	while (N!=0) {
		cin >> N;
		if (N==0) break;
		long long ans = calc(N);
		ans = (ans-1)/3650 +1;
		cout << ans << endl;
	}	

	return 0;
}

