#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll m_x=200005;
vector<ll>v[m_x];
ll d[m_x],s[m_x];
ll n,m;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
for(ll i=0;i<m;i++)
{
ll a,b;
cin>>a>>b;
v[b].push_back(a);
d[a]++;
}
queue<ll>q;
for(ll i=1;i<=n;i++)
{
if(d[i]==0)
{
q.push(i);
}
}
vector<pair<ll,ll>>r;
while(!q.empty())
{
ll t=q.front();
q.pop();
r.push_back({t,1});
for(auto x:v[t])
{
d[x]--;
if(d[x]==0)
{
q.push(x);
}
}
}
if(r.size()<n)
{
cout<<-1<<endl;
}
else
{
cout<<r.size()<<endl;
for(ll i=0;i<r.size();i++)
{
cout<<r[i].first<<" "<<r[i].second<<endl;
}
}
return 0;
}