#include <iostream> #include <vector> #include <algorithm> #include <bits/stdc++.h> using namespace std; typedef long long ll; using pii = pair<int, int>; const int sz = 51; vector<int> adj[sz]; vector<pii> edges; int n, m; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n >> m; for (int i = 0; i < m; ++i) { int x, y; cin >> x >> y; adj[--x].push_back(--y); edges.emplace_back(x, y); } vector<vector<int>> rv; rv.reserve(2 * m); for (auto [x, y] : edges){ vector<int> v; v.reserve(n); for (int i = 0; i < n; ++i) { if(i!=x&&i!=y)v.push_back(i); } v.push_back(x); v.push_back(y); rv.push_back(v); reverse(v.begin(),v.end()); swap(v[0],v[1]); rv.push_back(v); } cout<<"YES\n"; cout << rv.size() << '\n'; for (auto& v : rv) { for (int x : v)cout<<x+1<<' '; cout<<'\n'; } return 0; } /** * * * * 4 6 1 2 2 3 3 1 3 4 4 1 4 2 * * * * */