forgetful

TimeLimit:2000MS  MemoryLimit:256MB
64-bit integer IO format:%I64d
未提交 | 登录后收藏
Problem Description

    就在昨天, A刚刚学会了最小生成树算法, 高兴的小A想要把自跑出的答案用QQ发给学长看看是否正确。 不巧这个时候突然没网了, 心急的小A决定把答案记在纸上然后拿给学长看。 A记录了每条边的边权以及这条边是否是最小生成树中的边。 

    拿给学长看后, 学长感到很为难, 因为小A没有记录输入数据, 这时学长问小A你能通过纸上的答案构造出一个合法的图吗? 这可难住了小A 希望你能帮助他。


Input



输入数据:
第一行输入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};

保证输入数据合法。

Output

如果没办法构造出一个满足小A答案的图  输出-1

否则输出m  每一行有两个数ui vi 表示 第条边连接的是uv两个点。 点的标号从1开始。 边的顺序与输入顺序相同。 图必须联通且不能有自环,不能有重边。


SampleInput 1
4 5
2 1
3 1
4 0
1 1
5 0
SampleOutput 1
2 4
1 4
3 4
3 1
3 2
SampleInput 2
3 3
1 0
2 1
3 1
SampleOutput 2
-1
Submit
题目统计信息详细
总AC数15
通过人数15
尝试人数20
总提交量67
AC率22.39%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: