#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAX_N 200010 #define PI 3.141592653589 #define ESP 1e-20 #define BS 10 #define MOD 1000000007 #define ZERO 10001 #define YJSNPI 810 #define INF (1LL << 50) #define ADD(a, b) a = (a + (ll)b) % MOD #define MUL(a, b) a = (a * (ll)b) % MOD #define MAX(a, b) a = max(a, b) #define MIN(a, b) a = min(a, b) using namespace std; typedef pair pi; typedef long long ll; int N, M, K; vector E[MAX_N]; //bool used[MAX_N]; bool loop(int at, ll goal, int life) { if(goal & (1LL << at)) goal ^= (1LL << at); if(goal == 0) return true; if(life <= 0) return false; bool res = false; for(int i = 0; i < E[at].size(); i++) { res = max(res, loop(E[at][i], goal, life - 1)); if(res) return true; } return res; } int main() { fstream file("in.txt"); file >> N >> M >> K; for(int i = 0; i < M; i++) { int from, to; file >> from >> to; from--; to--; E[from].push_back(to); E[to].push_back(from); } ll ans = 0; for(int i = N - 1; i >= 0; i--) { ans |= (1LL << i); if(!loop(0, ans, K)) { ans ^= (1LL << i); } } ll res = 0; cout << ans - __builtin_popcountll(ans) << endl; }