小红的区间构造
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}在本题中我们认为区间的左右端点必须是整数。
小红拿到了一个长为 n 的数组 a=\{a_1,a_2,\dots,a_n\},其中  表示恰好有  个区间包含 
请你构造 m 个区间 \left[l_i, r_i \right] \left(1\leqq l_i \leqq r_i \leqq n\right),恰好满足数组  的限制条件。

输入描述:

第一行输入两个正整数 
第二行输入  个整数 a_i\left(0\leqq a_i \leqq 2\times10^5 \right)

输出描述:

如果不存在合法的 m 个区间,请输出 ,否则对于构造的每个区间,新起一行依次输出 
\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
5 5
1 2 3 4 5

输出

复制
1 5
2 5
3 5
4 5
5 5
示例2

输入

复制
5 2
1 2 1 2 1

输出

复制
-1