#include <bits/stdc++.h>

using namespace std;

using ll = long long;

constexpr ll MOD = 998244353;
ll dp[516][510], sum[529][510];
int main() {
    ll N, X, i, j, k;
    cin >> N >> X;
    ll M = 0;
    for(i = 0; i <= 10; i++) {
        if(1ll << i > X) {
            M = 1ll<<i;
            break;
        }
    }
    //M = 1ll << (M);
    //cout << M << endl;
    //ll dp[N + 1][M][X + 1], sum[N + 1][M][X + 1];
    /*for(i = 0; i < N + 1; i++) {
        for(j = 0; j < M; j++) {
            for(k = 0; k < X + 1; k++) {
                dp[i][j][k] = sum[i][j][k] = 0;
            }
        }
    }*/

    dp[0][0] = 1;
    sum[0][0] = 1;
    for(k = 0; k < M; k++) {
        for(j = 1; j <= X; j++) {
            sum[k][j] += sum[k][j - 1] + dp[k][j];
            sum[k][j] %= MOD;
        }
    }
    
    for(i = 1; i <= N; i++) {
        for(j = 0; j <= X; j++) {
            for(k = 0; k < M; k++) {
                dp[k][j] = 0;
            }
        }
        for(j = 0; j <= X; j++) {
            for(k = 0; k < M; k++) {
                dp[j ^ k][j] += sum[k][j];
                dp[j ^ k][j] %= MOD;
            }
        }
        for(j = 0; j <= X; j++) {
            for(k = 0; k < M; k++) {
                sum[k][j] = 0;
            }
        }
        sum[0][0] = 1;
        for(k = 0; k < M; k++) {
            for(j = 1; j <= X; j++) {
                sum[k][j] += sum[k][j - 1] + dp[k][j];
                sum[k][j] %= MOD;
            }
        }
    }

    cout << sum[X][X] % MOD << endl;
    return 0;
}
