Загрузка данных


import sys

def solve():
    s = sys.stdin.readline().strip()
    n = len(s)

    mismatch = []
    for p in range(n // 2):
        q = n - 1 - p
        if s[p] != s[q]:
            mismatch.append((p, q))
    M = len(mismatch)

    # Проверяет за O(1), станет ли строка палиндромом после обмена s[i] и s[j]
    def ok_after_swap(i, j):
        for k in {min(i, n - 1 - i), min(j, n - 1 - j)}:
            a, b = k, n - 1 - k
            va = s[j] if a == i else (s[i] if a == j else s[a])
            vb = s[j] if b == i else (s[i] if b == j else s[b])
            if va != vb:
                return False
        return True

    if M == 0:
        # Строка уже палиндром — меняем любые два одинаковых символа
        seen = {}
        for idx, ch in enumerate(s):
            if ch in seen:
                print(seen[ch] + 1, idx + 1)
                return
            seen[ch] = idx
        print("Infeasible")
        return

    if M > 2:
        print("Infeasible")
        return

    if M == 1:
        p, q = mismatch[0]
        for j in range(n):
            if j != p and j != q:
                if ok_after_swap(p, j):
                    print(min(p, j) + 1, max(p, j) + 1)
                    return
                if ok_after_swap(q, j):
                    print(min(q, j) + 1, max(q, j) + 1)
                    return
    else:
        (p1, q1), (p2, q2) = mismatch
        for i in (p1, q1):
            for j in (p2, q2):
                if ok_after_swap(i, j):
                    print(min(i, j) + 1, max(i, j) + 1)
                    return

    print("Infeasible")

solve()