#include<stdio.h>
#include<vector>
using namespace std;
vector< vector<int> > adj;
vector< pair<int,int> > res;
int check[1000000],num,v,out[1000000],n,m,u;
void DFS(int pos,int par){
	check[pos]=++num;
	for(int i=0;i<adj[pos].size();i++){
		int nxt=adj[pos][i];
		if(check[nxt]==0){
			DFS(nxt,pos);
			if(out[nxt]%2==1){
				res.push_back(make_pair(nxt,pos));
				out[nxt]++;
			}else{
				res.push_back(make_pair(pos,nxt));
				out[pos]++;
			}
		}else if(nxt!=par&&check[nxt]<check[pos]){
			out[pos]++;
			res.push_back(make_pair(pos,nxt));
		}
	}
}
int main(){
	scanf("%d %d", &n,&m);
	adj.resize(n+1);
	for(int i=1;i<=m;i++){
		scanf("%d %d", &u,&v);
		adj[u].push_back(v);
		adj[v].push_back(u);
	}
	if(m%2==1){
		printf("-1");
		return 0;
	}
	DFS(1,0);
	for(int i=0;i<res.size();i++) printf("%d %d\n", res[i].first,res[i].second);
}