就在昨天, 小A刚刚学会了最小生成树算法, 高兴的小A想要把自跑出的答案用QQ发给学长看看是否正确。 不巧这个时候突然没网了, 心急的小A决定把答案记在纸上然后拿给学长看。 小A记录了每条边的边权以及这条边是否是最小生成树中的边。
拿给学长看后, 学长感到很为难, 因为小A没有记录输入数据, 这时学长问小A你能通过纸上的答案构造出一个合法的图吗? 这可难住了小A。 希望你能帮助他。

输入数据:
第一行输入n m 表示n个点的图一共有m条边。
1 <= n <= 100000, 1 <= m <= 100000, n-1 <= m <= n*(n-1)/2。
之后有m行, 每行有两个数字numi, validi, 表示第i条边的边权以及第条边是否在最小生成树中。 1表示在 0 表示不在。
1 <= num <= 109
valid = {0, 1};
保证输入数据合法。
如果没办法构造出一个满足小A答案的图 输出-1
否则输出m行 每一行有两个数ui, vi 表示 第条边连接的是u和v两个点。 点的标号从1开始。 边的顺序与输入顺序相同。 图必须联通且不能有自环,不能有重边。
4 5
2 1
3 1
4 0
1 1
5 0
2 4
1 4
3 4
3 1
3 2
3 3
1 0
2 1
3 1
-1