#include #include using namespace std; using namespace atcoder; using ll = long long; using ld = long double; using mint = modint998244353; int main() { int n, m; cin >> n >> m; vector> g(2 * n); for (int i = 0; i < m; i++) { int a, b; cin >> a >> b; a--, b--; g[a].push_back(n + b); g[n + b].push_back(a); g[b].push_back(n + a); g[n + a].push_back(b); } vector> f(2 * n, vector(2 * n, false)); for (int i = 0; i < 2 * n; i++) { f[i][i] = true; } for (int i = 0; i < 2 * n; i++) { queue que; que.push(i); while (!que.empty()) { int v = que.front(); que.pop(); for (int u: g[v]) { if (f[i][u] == false) { f[i][u] = true; que.push(u); } } } } //for (int i = 0; i < 2 * n; i++) for (int j = 0; j < 2 * n; j++) cout << f[i][j] << " \n"[j == 2 * n - 1]; bool flag = true; for (int i = 0; i < n; i++) { if (!f[i][n + i]) { flag = false; break; } } cout << (flag ? "Yes": "No") << endl; return 0; }