#include <algorithm>
#include <array>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <vector>
using namespace std;
#define int long long
constexpr int MOD = 998244353;

vector<vector<int>> dp(0b1000000000, vector<int>(500 + 1, 0));

signed main() {
    cin.tie(0);
    ios::sync_with_stdio(0);

    int n, x;
    cin >> n >> x;

    dp[0][0] = 1;
    // dp[i][j]: 0からaまでみたとき、値iとなる長さjの数列が何通りあるか

    // i 0からnまでしらべる
    for (int i = 0; i <= x; i++) {
        for (int j = 0; j < n; j++) {
            for (int k = 0; k < 0b1000000000; k++) {
                (dp[i ^ k][j + 1] += dp[k][j] % MOD) %= MOD;
            }
        }
    }

    const int ans = dp[x][n];
    cout << ans << endl;
}

