Oleg writes down the history of the days he lived. For each day he decides if it was good or bad. Oleg calls a non-empty sequence of days a zebra, if it starts with a bad day, ends with a bad day, and good and bad days are alternating in it. Let us denote bad days as 0 and good days as 1. Then, for example, sequences of days 0, 010, 01010 are zebras, while sequences 1, 0110, 0101 are not.

Oleg tells you the story of days he lived in chronological order in form of string consisting of 0 and 1. Now you are interested if it is possible to divide Oleg's life history into several subsequences, each of which is a zebra, and the way it can be done. Each day must belong to exactly one of the subsequences. For each of the subsequences, days forming it must be ordered chronologically. Note that subsequence does not have to be a group of consecutive days.
In the only line of input data there is a non-empty string *s* consisting of characters 0 and 1, which describes the history of Oleg's life. Its length (denoted as |*s*|) does not exceed 200 000 characters.
none
0010100
3
1 1
5 2 3 4 5 6
1 7
111
-1
0
1
1 1
1
-1
0101010101
-1
010100001
-1
000111000
3
3 1 6 7
3 2 5 8
3 3 4 9
0101001000
4
5 1 2 3 4 5
3 6 7 8
1 9
1 10
0000001000
8
1 1
1 2
1 3
1 4
1 5
3 6 7 8
1 9
1 10
0101
-1
000101110
-1
010101010
1
9 1 2 3 4 5 6 7 8 9
0101001010
2
5 1 2 3 4 5
5 6 7 8 9 10
0100101100
2
5 1 2 3 8 9
5 4 5 6 7 10
0110100000
-1
0000000000
10
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1111111111
-1
0010101100
2
3 1 8 9
7 2 3 4 5 6 7 10
1010000
-1
0001110
-1
0000000000011001100011110101000101000010010111000100110110000011010011110110001100100001001001010010
22
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
7 9 24 25 26 27 28 29
7 10 13 14 17 18 23 30
11 11 12 15 16 19 22 31 32 33 34 35
3 20 21 36
3 37 46 47
9 38 39 40 45 48 57 58 75 76
17 41 42 43 44 49 50 51 54 55 56 59 72 73 74 77 80 81
9 52 53 60 71 78 79 82 83 84
7 61 64 65 66 67 70 85
5 62 63 68 69 86
3 87 88 89
3 90 91 92
5 93 94 95 96 97
3 98 99 100
01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010
1
245 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 ...
0010011100000000
8
3 1 8 9
5 2 3 4 7 10
3 5 6 11
1 12
1 13
1 14
1 15
1 16
s = input()
stack = []
res = []
for i,c in enumerate(s):
	if i == 0:
		if c == '1':
			print(-1)
			break
		else:
			res.append(i)
	if c == '1':
		if s[res[-1]] == '0':
			res.append(i)
		else:
			if stack:
				res.append(stack.pop())
			else:
				print(-1)
				break
	elif c == '0':
		if s[res[-1]] == '1':
			res.append(i)
		else:
			stack.append(i)
print(len(stack) + 1)
if stack:
	for i in stack:
		print(1,end=' ')
		print(i+1)
print(len(res),end=' ')
for i in res:
	print(i+1,end=' ')