#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; namespace my_io{ template istream& operator >> (istream& is, vector& vec){for(T& val: vec) is >> val; return is;} template istream& operator , (istream& is, T& val){ return is >> val;} template ostream& operator << (ostream& os, const vector& vec){for(int i=0; i ostream& operator , (ostream& os, const T& val){ return os << " " << val;} template ostream& operator >> (ostream& os, const T& val){ return os << " " << val;} template void println(const H& head){ cout << head << endl; } template void println(const H& head, const T& ... tail){ cout << head << " "; println(tail...); } } using namespace my_io; int bit_count(long long x){ long long ret = 0; while(x){ ret++; x -= x&-x; } return ret; } int main(){ int n,m; scanf("%d%d", &n, &m); vector u(m),v(m),s(m); for(int i=0; i> mat(n, vector(n,0)); for(int i=0; i dp(1<> ord(n+1); for(int i=0; i<1< logk(1<>k)&1) continue; int tmp = 0; for(int ss=s; ss; ss -= ss&-ss){ tmp += mat[logk[ss&-ss]][k]; } int& next = dp[s|(1<