#include #include using namespace std; using i64 = long long; using u32 = unsigned int; u32 uy = time(NULL); u32 xorshift32() { uy ^= uy << 13; uy ^= uy >> 17; uy ^= uy << 5; return uy; } int main(void) { int n, m; scanf("%d%d", &n, &m); vector> G(n, vector()); for(int i=0; i colour(n); // colour[n] for(int i=0; i> dp(n, vector(1<<5, false)); // dp[n][1<<5] dp[0][0] = true; for(int mask=0; mask<1<<5; ++mask) { for(int v=0; v> colour[u] & 1) { continue; } dp[u][mask|(1<