FMT

#include <iostream>
using namespace std;
typedef long long ll;
const int maxn = 100005, mod = 998244353;
void FMT(ll *a, int n, int opt = 1){//n为集合大小 
    for(int i = 1; i < (1 << n); i <<= 1){
        for(int j = 0; j < (1 << n); j++){
            if(i & j)    (a[j] += (a[i^j] * opt % mod + mod) % mod) %= mod;
        }
    }
}
int main(){
    int n; scanf("%d", &n);
    FMT(A, n), FMT(B, n);
    for(int i = 0; i < n; i++) A[i] = A[i] * B[i] % mod;
    FMT(A, n, -1);
    return 0;
}