Petya has noticed that when he types using a keyboard, he often presses extra buttons and adds extra letters to the words. Of course, the spell-checking system underlines the words for him and he has to click every word and choose the right variant. Petya got fed up with correcting his mistakes himself, that’s why he decided to invent the function that will correct the words itself. Petya started from analyzing the case that happens to him most of the time, when all one needs is to delete one letter for the word to match a word from the dictionary. Thus, Petya faces one mini-task: he has a printed word and a word from the dictionary, and he should delete one letter from the first word to get the second one. And now the very non-trivial question that Petya faces is: which letter should he delete?
The input data contains two strings, consisting of lower-case Latin letters. The length of each string is from 1 to 10<sup class="upper-index">6</sup> symbols inclusive, the first string contains exactly 1 symbol more than the second one.
import itertools
import math
import time
from builtins import input
from math import gcd as gcd
import sys
import queue
import itertools
import collections
from heapq import heappop, heappush
import random
import os
from random import randint
import decimal

# from sys import stdin, stdout
# input, print = stdin.readline, stdout.write

decimal.getcontext().prec = 18


def solve():
    # PLEASE
    # without collisions...pls...
    # o-0

    s1 = str(sys.stdin.readline())
    s2 = str(sys.stdin.readline())

    m1 = 10 ** 9 + 9
    m2 = 10 ** 9 + 7
    p = 117351917731

    h2_m1 = 0
    h1_m1 = [0 for i in range(len(s1) + 1)]
    h1_m1[1] = ord(s1[0])

    h2_m2 = 0
    h1_m2 = [0 for i in range(len(s1) + 1)]
    h1_m2[1] = ord(s1[0])

    last_p1 = 1
    last_p2 = 1

    for i in range(len(s2)):
        h2_m1 = (h2_m1 + ord(s2[i]) * last_p1) % m1
        last_p1 = (last_p1 * p) % m1
        h1_new = (h1_m1[i + 1] + ord(s1[i + 1]) * last_p1) % m1
        h1_m1[i + 2] = h1_new

        h2_m2 = (h2_m2 + ord(s2[i]) * last_p2) % m2
        last_p2 = (last_p2 * p) % m2
        h1_new = (h1_m2[i + 1] + ord(s1[i + 1]) * last_p2) % m2
        h1_m2[i + 2] = h1_new

    res = []

    m1_rev = pow(p, m1 - 2, m1)
    m2_rev = pow(p, m2 - 2, m2)

    for i in range(len(s1)):
        pref = h1_m1[i]
        suff = ((h1_m1[-1] - h1_m1[i + 1]) * m1_rev) % m1

        if (pref + suff) % m1 == h2_m1:
            pref2 = h1_m2[i]
            suff2 = ((h1_m2[-1] - h1_m2[i + 1]) * m2_rev) % m2

            if (pref2 + suff2) % m2 == h2_m2:
                res.append(i + 1)

    print(len(res))
    sys.stdout.write(" ".join(map(str, res)))


if __name__ == '__main__':
    multi_test = 0

    if multi_test == 1:
        t = int(sys.stdin.readline())
        for _ in range(t):
            solve()
    else:
        solve()
