#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int MOD = 1000000007; int n; vector > len; vector memo; vector cnt; long long solve(bitset<32> bs) { if(memo[bs.to_ulong()] != -1) return memo[bs.to_ulong()]; int m = bs.count(); long long tmp = 1; for(int i=1; i> n; vector s(n); for(int i=0; i> s[i]; len.assign(n, vector(n, 0)); for(int i=0; i