#include <bits/stdc++.h>

template<class T, class...Cond>
using require_ = std::enable_if_t<std::__and_<T, Cond...>::value, bool>;

template<class T, require_<std::is_signed<T>> = true>
void read(T & x) {
    x = 0;
    bool f = false;
    char c = getchar();
    while (!isdigit(c)) f |= (c == '-'), c = getchar();
    while (isdigit(c)) x = (x * 10) - (c ^ 48), c = getchar();
    x = (f ? x : -x);
}

template<class T, require_<std::is_unsigned<T>> = true>
void read(T & x) {
    x = 0;
    char c = getchar();
    while (!isdigit(c)) c = getchar();
    while (isdigit(c)) x = (x << 3) + (x << 1) + (c ^ 48), c = getchar();
}

template<class T, class...Args>
void read(T & x, Args&...args) {
    read(x);
    read(args...);
}

constexpr int N = 5e5;

int n, m;
std::vector<int> e[N];

void solve() {
    read(n, m);
    for (int i = 1; i <= m; ++ i) {
        int x, y;
        read(x, y);
        e[x].emplace_back(y);
        e[y].emplace_back(x);
    }
}

int main() {
    std::freopen("barrack.in", "r", stdin);
    std::freopen("barrack.out", "w", stdout);

    int T = 1;
    for (int t = 1; t <= T; ++ t) {
        solve();
    }
    return 0;
}
/*
(1
2 4 2
1 2 1 2
)
*/
/*
1
3 10 5
1 2 3 4 5 2 3 4 5 1
*/