Logo Infinity Online Judge

InfOJ

时间限制:1 s 空间限制:512 MB

#124. Division

统计

题目描述

给出一个正整数序列 $[a_1\dots a_n]$ 以及定值 $k$,每次可以选择一个区间 $[l,r]\ (r-l+1\ge k)$,把这个区间内的 $a_i$ 除以二下取整。是否可能通过一些操作,把所有 $a_i$ 变成 $1$?

若能,求出一种操作次数最少的操作方案。

输入格式

本题有多组数据。

第一行是数据组数 $T$。$(1\le T\le 2000)$

每组数据中:

第一行两个正整数 $n,k$。$(1\le k\le n\le 10^4)$

接下来一行 $n$ 个正整数 $a_1\sim a_n$。$(1\le a_i\le 10^{15})$

同一个测试点内,所有数据中 $n$ 的和不超过 $2\times 10^4$。

输出格式

对于每组数据:

若无解,输出 -1

若有解,第一行输出最小操作次数 $m$。

接下来 $m$ 行每行两个正整数 $l,r$,代表对 $[l,r]$ 进行一次操作。

输入输出样例

样例输入

2
5 3
3 3 5 3 3
5 3
3 3 3 5 3

样例输出

2
1 3
3 5
-1