CF1684H Hard Cut

Description

You are given a binary string $ s $ . You have to cut it into any number of non-intersecting substrings, so that the sum of binary integers denoted by these substrings is a power of 2. Each element of $ s $ should be in exactly one substring.

Input Format

Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 10^5 $ ). Description of the test cases follows. Each test case contains a binary string $ s $ ( $ 1 \le |s| \le 10^6 $ ). It is guaranteed that the sum of $ |s| $ over all test cases does not exceed $ 10^6 $ .

Output Format

For each test case output the answer to the problem as follows: - If the answer does not exist, output $ -1 $ . - If the answer exists, firstly output an integer $ k $ — the number of substrings in the answer. After that output $ k $ non-intersecting substrings, for $ i $ -th substring output two integers $ l_i, r_i $ ( $ 1 \le l_i, r_i \le |s| $ ) — the description of $ i $ -th substring. If there are multiple valid solutions, you can output any of them.

Explanation/Hint

In the first test case it is impossible to cut the string into substrings, so that the sum is a power of 2. In the second test case such cut is valid: - $ 011_2 = 3_{10} $ , - $ 0_2 = 0_{10} $ , - $ 1_2 = 1_{10} $ . $ 3 + 0 + 1 = 4 $ , $ 4 $ is a power of 2.