#include <bits/stdc++.h>

#define X first
#define Y second
#define PB push_back
#define x first
#define y second
#define pb push_back

using namespace std;

typedef long long ll;
typedef vector<int> vi;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int n, m; cin >> n >> m;
	vector < vi > sol;
	for(int i = 0;i < m;i++) {
		int a, b; cin >> a >> b;
		vi v1, v2;
		v1 = {a, b};
		for(int i = 1;i <= n;i++) {
			if(i != a && i != b) v1.PB(i);
		}
		for(int i = n;i >= 1;i--)
			if(i != a && i != b) v2.PB(i);
		v2.PB(a); v2.PB(b);
		sol.PB(v1);
		sol.PB(v2);
		
	}
	cout << "YES\n";
	cout << (int)sol.size() << endl;
	for(auto tmp : sol) {
		for(int x : tmp) cout << x << " ";
		cout << endl;
	}
	return 0;
}