#include "testlib.h" #include using namespace std; using ll = long long; using pll = pair; #define all(a) begin(a), end(a) #define space inf.readChar(' ') #define endl inf.readChar('\n') #define eof inf.readEof() tuple read(ll min, ll max){ ll a = inf.readLong(min, max); endl; return tuple{a}; } template auto read(ll min, ll max, T... t){ ll a = inf.readLong(min, max); space; return tuple_cat(tuple{a}, read(t...)); } string read(string p){ return inf.readLine(p); } vector reads(ll N, ll min, ll max){ auto a = inf.readLongs(N, min, max); endl; return a; } vector read_lines(ll N, string p){ return inf.readLines(N, p); } template auto read_lines(ll N, T... t){ vector a; a.reserve(N); while(N--) a.push_back(read(t...)); return a; } vector> read_matrix(ll H, ll W, ll min, ll max){ vector> ans(H); for(auto& v : ans) v = reads(W, min, max); return ans; } const int MAX_N = 500000; const int MAX_M = 500000; const int MAX_K = 51; int main() { registerValidation(); int N = inf.readInt(1, MAX_N); inf.readSpace(); long long max_M = min(1LL * N * (N - 1), 1LL * MAX_M); int M = inf.readInt(0, max_M); inf.readSpace(); int K = inf.readInt(1, MAX_K); inf.readEoln(); set> edges; for (int i = 0; i < M; ++i) { int u = inf.readInt(1, N); inf.readSpace(); int v = inf.readInt(1, N); inf.readEoln(); ensure(edges.insert({u, v}).second); } inf.readEof(); }