public class Euler434 {
    private static final long MOD = 1000000033L;
    private static final int N_VAL = 100;

    public static String solve() {
        long[][] binom = new long[N_VAL + 1][N_VAL + 1];
        binom[0][0] = 1;
        for (int i = 1; i <= N_VAL; i++) {
            binom[i][0] = 1;
            binom[i][i] = 1;
            for (int j = 1; j < i; j++) {
                binom[i][j] = (binom[i - 1][j - 1] + binom[i - 1][j]) % MOD;
            }
        }

        long[] pow2 = new long[N_VAL * N_VAL + 1];
        pow2[0] = 1;
        for (int i = 1; i <= N_VAL * N_VAL; i++) {
            pow2[i] = (pow2[i - 1] * 2) % MOD;
        }

        long[][] r = new long[N_VAL + 1][N_VAL + 1];
        r[1][0] = 1;

        for (int m = 1; m <= N_VAL; m++) {
            long[] base = new long[N_VAL + 1];
            if (m > 1) {
                for (int i = 1; i < m; i++) {
                    long chooseRows = binom[m - 1][i - 1];
                    int delta = m - i;
                    for (int n = 1; n <= N_VAL; n++) {
                        long inner = 0;
                        for (int j = 0; j <= n; j++) {
                            long term = (binom[n][j] * r[i][j]) % MOD;
                            term = (term * pow2[delta * (n - j)]) % MOD;
                            inner = (inner + term) % MOD;
                        }
                        base[n] = (base[n] + chooseRows * inner) % MOD;
                    }
                }
            }

            for (int n = 1; n <= N_VAL; n++) {
                long sameRow = 0;
                for (int j = 0; j < n; j++) {
                    sameRow = (sameRow + binom[n][j] * r[m][j]) % MOD;
                }

                long val = pow2[m * n];
                val = (val - base[n]) % MOD;
                if (val < 0)
                    val += MOD;
                val = (val - sameRow) % MOD;
                if (val < 0)
                    val += MOD;

                r[m][n] = val;
            }
        }

        long total = 0;
        for (int i = 1; i <= N_VAL; i++) {
            for (int j = 1; j <= N_VAL; j++) {
                total = (total + r[i][j]) % MOD;
            }
        }

        return String.valueOf(total);
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
