// Created by Gyojun Youn
#include <stdio.h>
#include <algorithm>
#include <string>
#include <string.h>
#define MAXN (1005)
#define MOD (2052506102)
typedef long long ll;
using namespace std;

ll d[MAXN] = {1}, e[MAXN] = {1, 1, 2, 4};
int N;

int main() {
	N = MAXN;
	for(int i = 4; i < MAXN; i++) e[i] = (e[i-1]+e[i-2]+e[i-3])%MOD;
	for(int i = 0; i < MAXN; i++) e[i] = (e[i]*e[i])%MOD;
	for(int i = 1; i <= N; i++) {
		for(int j = 1; j <= i; j++) {
			d[i] = (d[i] + d[j-1] * e[i-j]) % MOD;
		}
		d[i] = (d[i] + e[i]) % MOD;
	}
	for(int t = 1; t <= 15; t++) {
		char tmp[10]; sprintf(tmp, "%d", t);
		string filename(tmp);
		string inputfilename = tmp + string(".in");
		string outputfilename = tmp + string(".out");
		FILE *f_in = fopen(inputfilename.c_str(), "w");
		FILE *f_out = fopen(outputfilename.c_str(), "w");
		fprintf(f_in, "%d\n", t);
		fprintf(f_out, "%lld\n", d[t]);
		fclose(f_in); fclose(f_out);
	}
	return 0;
}
