#include <bits/stdc++.h>
using namespace std;
int N, data[200002];
long long MOD = 998244353;
int table[2002][2002];
void multiply() {
for(int i = 1; i <= 2000; i++)
for(int j = i+1; j <= 2000; j++)
table[i][j] = table[j][i] = i^j;
}
int main() {
cin >> N;
for(int i = 0; i < N; i++)
cin >> data[i];
sort(data, data+N);
bool unique = true;
for(int i = 1; i < N && unique; i++)
if(data[i] == data[i-1])
unique = false;
if(!unique)
cout << 0 << endl;
else {
multiply();
long long ans = 1;
for(int i = 0; i < N; i++)
for(int j = i+1; j < N; j++)
ans = (ans*table[data[i]][data[j]])%MOD;
cout << ans << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgTiwgZGF0YVsyMDAwMDJdOwpsb25nIGxvbmcgTU9EID0gOTk4MjQ0MzUzOwppbnQgdGFibGVbMjAwMl1bMjAwMl07Cgp2b2lkIG11bHRpcGx5KCkgewoJZm9yKGludCBpID0gMTsgaSA8PSAyMDAwOyBpKyspCgkJZm9yKGludCBqID0gaSsxOyBqIDw9IDIwMDA7IGorKykKCQkJdGFibGVbaV1bal0gPSB0YWJsZVtqXVtpXSA9IGleajsKfQoKaW50IG1haW4oKSB7CgljaW4gPj4gTjsKCWZvcihpbnQgaSA9IDA7IGkgPCBOOyBpKyspCgkJY2luID4+IGRhdGFbaV07Cglzb3J0KGRhdGEsIGRhdGErTik7Cglib29sIHVuaXF1ZSA9IHRydWU7Cglmb3IoaW50IGkgPSAxOyBpIDwgTiAmJiB1bmlxdWU7IGkrKykKCQlpZihkYXRhW2ldID09IGRhdGFbaS0xXSkKCQkJdW5pcXVlID0gZmFsc2U7CglpZighdW5pcXVlKQoJCWNvdXQgPDwgMCA8PCBlbmRsOwoJZWxzZSB7CgkJbXVsdGlwbHkoKTsKCQlsb25nIGxvbmcgYW5zID0gMTsKCQlmb3IoaW50IGkgPSAwOyBpIDwgTjsgaSsrKQoJCQlmb3IoaW50IGogPSBpKzE7IGogPCBOOyBqKyspCgkJCQlhbnMgPSAoYW5zKnRhYmxlW2RhdGFbaV1dW2RhdGFbal1dKSVNT0Q7CgkJY291dCA8PCBhbnMgPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9