#include <bits/stdc++.h>
#define LL long long
#define PII pair<int, int>
#define PLL pair<LL, LL>
#define all_of(v) (v).begin(), (v).end()
#define sort_unique(c) (sort(c.begin(),c.end()), c.resize(distance(c.begin(),unique(c.begin(),c.end()))))
#define fi first
#define se second
const int MAXN = 101;
//const LL INF = (LL) 1e9 + 8763;
//const LL MOD = (LL) 1e9 + 7;
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int n, mod, k, ans[MAXN], dp[MAXN][MAXN*MAXN*MAXN];

inline int add(int x, int y) {
	int sum = x + y;
	if (sum >= mod) sum -= mod;
	return sum;
}

void solve() {
	cin >> n >> k >> mod;
	
	int bound = n * (n + 1) / 2 * k;
	dp[0][0] = 1;
	for (int i = 1; i <= n; i++) {
		for (int r = 0; r < i; r++) {
			int sum = 0;
			for (int j = r; j <= bound; j += i) {
				sum = add(sum, dp[i - 1][j]);
				if (j - (k + 1) * i >= 0) {
					sum = add(sum, -dp[i - 1][j - (k + 1) * i] + mod);
				}
				dp[i][j] = sum;
			}
		}
	}
	
	for (int i = 1; i <= n; i++) {
		int a = i - 1, b = n - i;
		for (int j = 0; j <= bound; j++) {
//			cout << "At " << i << ' ' << j << " -> " << dp[a][j] << ' ' << dp[b][j] << '\n';
			if (dp[a][j] == 0 || dp[b][j] == 0) continue;
			ans[i] = (ans[i] + (LL) dp[a][j] * dp[b][j] % mod * (k + 1) % mod) % mod;
		}
		ans[i] = (ans[i] - 1 + mod) % mod;
	}
	
	for (int i = 1; i <= n; i++) {
		cout << ans[i] << "\n";
	}
}

int main() {
	ios_base::sync_with_stdio(0); cin.tie(0);

	int tc = 1;
//	cin >> tc;
	for (int i = 1; i <= tc; i++) {
		solve();
	}

	return 0;
} 
#include <bits/stdc++.h>
#define INF32 2147483647
#define INF64 9223372036854775807
#define rep(i, l, n) for(int i = l, i##_end = n; i < i##_end; ++i)
#define rrep(i, n, l) for(int i = ((int)(n)-1), i##_end = l; i >= i##_end; --i)
#define erep(i, n) for(auto &i : n)
#define ALL(x) (x).begin(), (x).end()
#define SZ(x) ((int)(x).size())
using namespace std;
using ll = long long;
using ull = unsigned long long;
using P = pair<int, int>;
using vi = vector<int>;
using vii = vector<vi>;
template<class S, class T>
bool chmax(S &a, const T &b) {
  if(a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template<class S, class T>
bool chmin(S &a, const T &b) {
  if(b < a) {
    a = b;
    return 1;
  }
  return 0;
}

int main() {
  // 1. input
  ll A, B, C;
  cin >> A >> B >> C;

  bool isEven = !(C % 2);

  // 2.
  char ans = '>';
  if(A == B || (A == -B && isEven)) ans = '=';
  else if((isEven && abs(A) < abs(B)) ||
          (!isEven && ((A <= 0 && 0 <= B) || (A < 0 && B < 0 && A > B))))
    ans = '<';

  // 3. output
  cout << ans << endl;
  return 0;
}
