import sys



sr = lambda: sys.stdin.readline().rstrip()

ir = lambda: int(sr())

lr = lambda: list(map(int, sr().split()))



S = list(sr())

N = len(S)

if S[-1] == '1' or S[0] == '0' or S[:-1] != S[:-1][::-1]:

    print((-1)); exit()

S = ['-'] + S



def solve(S):

    prev = 1

    graph = []

    for i in range(1, N//2 + 1):

        if S[i] == '0':

            continue

        for x in range(prev, i):

            print((x, i))

        prev = i

    for x in range(prev, N):

        print((x, N))



graph = solve(S)

import sys



sr = lambda: sys.stdin.readline().rstrip()

ir = lambda: int(sr())

lr = lambda: list(map(int, sr().split()))



S = '-' + sr()

N = len(S) - 1

def solve(S):

    if S[1] == '0':

        return None

    if S[N] == '1':

        return None

    prev = 1

    graph = []

    for n in range(1,N//2 + 1):

        if S[n] != S[N-n]:

            return None

        if S[n] == '0':

            continue

        for i in range(prev,n):

            graph.append('{} {}'.format(i,n))

        prev = n

    for i in range(prev,N):

        graph.append('{} {}'.format(i,N))

    return graph



graph = solve(S)



if graph is None:

    print((-1))

else:

    print(('\n'.join(graph)))

import sys

sr = lambda: sys.stdin.readline().rstrip()
ir = lambda: int(sr())
lr = lambda: list(map(int, sr().split()))
S = list(sr())
N = len(S)
if S[-1] == "1" or S[0] == "0" or S[:-1] != S[:-1][::-1]:
    print((-1))
    exit()
S = ["-"] + S


def solve(S):
    prev = 1
    graph = []
    for i in range(1, N // 2 + 1):
        if S[i] == "0":
            continue
        for x in range(prev, i):
            print((x, i))
        prev = i
    for x in range(prev, N):
        print((x, N))


graph = solve(S)

import sys

sr = lambda: sys.stdin.readline().rstrip()
ir = lambda: int(sr())
lr = lambda: list(map(int, sr().split()))
S = "-" + sr()
N = len(S) - 1


def solve(S):
    if S[1] == "0":
        return None
    if S[N] == "1":
        return None
    prev = 1
    graph = []
    for n in range(1, N // 2 + 1):
        if S[n] != S[N - n]:
            return None
        if S[n] == "0":
            continue
        for i in range(prev, n):
            graph.append("{} {}".format(i, n))
        prev = n
    for i in range(prev, N):
        graph.append("{} {}".format(i, N))
    return graph


graph = solve(S)
if graph is None:
    print((-1))
else:
    print(("\n".join(graph)))

-S = list(sr()) -N = len(S) -if S[-1] == "1" or S[0] == "0" or S[:-1] != S[:-1][::-1]: -    print((-1)) -    exit() -S = ["-"] + S +S = "-" + sr() +N = len(S) - 1 +    if S[1] == "0": +        return None +    if S[N] == "1": +        return None -    for i in range(1, N // 2 + 1): -        if S[i] == "0": +    for n in range(1, N // 2 + 1): +        if S[n] != S[N - n]: +            return None +        if S[n] == "0": -        for x in range(prev, i): -            print((x, i)) -        prev = i -    for x in range(prev, N): -        print((x, N)) +        for i in range(prev, n): +            graph.append("{} {}".format(i, n)) +        prev = n +    for i in range(prev, N): +        graph.append("{} {}".format(i, N)) +    return graph +if graph is None: +    print((-1)) +else: +    print(("\n".join(graph)))