#include using namespace std; using ll = long long; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); //N-1回以内に集合できるか? //dp(i, S, j)=iから通った頂点集合がSの状態でjに行けるか? //iからは|S|回目にjに行ける。 int N, M, K, U, V, L, x, y; cin >> N >> M >> K; vector X(K); vector> E(N); for (int i=0; i> X[i]; X[i]--; } for (int i=0; i> U >> V; U--; V--; E[U].push_back(V); E[V].push_back(U); } L = 1<(N))); for (int i=0; i>x & 1) continue; dp[i][j|(1<(K)); for (int i=0; i