#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; int main() { using mint=modint998244353; int n, m; cin>>n>>m; int x[101], y[101], z[101]; for(int i=0; i>x[i]>>y[i]>>z[i]; x[i]--; y[i]--; } int n1=n; if(n>=6){ if(n&1) n1=7; else n1=6; } assert(n<=5); mint ans=0; for(int i=0; i<(1<=6){ for(int x1=2; x1>x1)&1)^((j>>y1)&1); if(t!=1){ dame=1; } } } if(dame) continue; } for(int k=0; k=6){ if(2<=x1 && x1=n-2) x1=n1-(n-x1); if(2<=y1 && y1=n-2) y1=n1-(n-y1); } int t=((i>>x1)&1)^((j>>y1)&1); if(t!=z[k]){ dame=1; break; } } if(dame) continue; for(int x0=0; x0>x1)&1)^((j>>y1)&1); s^=t; } } if(s!=1){ dame=1; break; } } if(dame) break; } if(dame) break; } if(dame) continue; ans++; } } cout<