//brut
#include <iostream>
#include <vector>
#define nmax 1005
using namespace std;

bool edge[nmax][nmax];
int n, m, x, y;

vector <pair <int, int> > v;

int main() {
    cin>>n>>m;
    for(int i=1; i<=m; i++)
        cin>>x>>y,
        edge[x][y] = true;

    for(int i=1; i<=n; i++)
        for(int j=i+1; j<=n; j++)
            if(edge[i][j] && edge[j][i]) v.push_back(make_pair(i, j));

    cout<<int(v.size())<<"\n";
    for(int i=0; i<int(v.size()); i++) cout<<v[i].first<<" "<<v[i].second<<"\n";

    return 0;
}