#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

void solve(){
    int n,m;
    cin>>n>>m;
    vector<vector<int>>res;
    vector<pair<int,int>>lines;
    for(int _i=0;_i<m;_i++){
        int a,b;
        cin>>a>>b;
        lines.emplace_back(a,b);
        vector<int>line;
        for(int i=1;i<=n;i++){
            if(i!=a&&i!=b) {
                line.push_back(i);
            }
        }
        line.push_back(a);
        line.push_back(b);
        res.push_back(line);
        line.clear();
        for(int i=n;i>0;i--){
            if(i!=a&&i!=b) {
                line.push_back(i);
            }
        }
        line.push_back(a);
        line.push_back(b);
        res.push_back(line);
    }
    map<pair<int,int>,int>mp;
    for(auto i:res){
        int n1=(int)i.size();
        for(int i1=0;i1<n1;i1++){
            for(int i2=i1+1;i2<n1;i2++){
                mp[{i[i1],i[i2]}]++;
            }
        }
    }
    for(auto[a,b]:lines){
        if(mp[{a,b}]<=mp[{b,a}]){
            cout<<"NO\n";
            return;
        }
    }

    cout<<"YES\n";
    cout<<res.size()<<"\n";
    for(auto i:res){
        for(int j:i){
            cout<<j<<" ";
        }
        cout<<"\n";
    }
}

int main(){
    ios_base::sync_with_stdio(0),cin.tie(0);
    int t=1;//cin>>t;
    while(t--) solve();
}