#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> e[100005];
int a[100005],T=1000;
int main(){
srand(1919810);
int n,m;cin>>n>>m;
for(int i=1;i<=m;i++)
{
int u,v;
cin>>u>>v;
e[u].push_back(v);
e[v].push_back(u);
}
for(int i=1;i<=n;i++)
a[i]=i;
while(T--)
{
random_shuffle(a+1,a+n+1);
bool f=1;
a[n+1]=a[1];
for(int i=1;i<=m && f;i++)
{
for(int j=0;j<(int)e[a[i]].size();j++)
if(e[a[i]][j]==a[i+1])
f=0;
}
if(f==1)
{
for(int i=1;i<=m;i++)
cout<<a[i]<<' '<<a[i+1]<<'\n';
return 0;
}
}
puts("-1");
}
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |
1051. Height Checker | 695. Max Area of Island |
402. Remove K Digits | 97. Interleaving String |
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |
1920. Build Array from Permutation | 494. Target Sum |
797. All Paths From Source to Target | 1547B - Alphabetical Strings |
1550A - Find The Array | 118B - Present from Lena |
27A - Next Test | 785. Is Graph Bipartite |
90. Subsets II | 1560A - Dislike of Threes |