#include <bits/stdc++.h>
using namespace std;
long long bigmod(long long b, long long p, long long n) {
  if (p == 0)
    return 1;
  else if (p % 2 == 0) {
    long long half1 = bigmod(b, p / 2, n);
    return ((half1 * half1) % n);
  } else if (p % 2 == 1) {
    long long p1 = b % n;
    long long p2 = bigmod(b, p - 1, n);
    return ((p1 * p2) % n);
  }
}
long long pre11[1000010], pre21[1000010];
string s, s1;
const int p = 31;
const int m1 = 1e9 + 7;
long long MMI[1000010];
void com() {
  MMI[0] = 1;
  MMI[1] = bigmod(31, m1 - 2, m1);
  for (long long i = 2; i <= s.size() + 3; i++)
    MMI[i] = (MMI[i - 1] * MMI[1]) % m1;
}
void compute_hash() {
  long long hash_value1 = 0, hash_value2 = 0;
  long long p_pow1 = 1, p_pow2 = 1;
  for (int i = 0; i < s.size(); i++) {
    hash_value1 = (hash_value1 + (s[i] - 'a' + 1) * p_pow1) % m1;
    if (i < s1.size())
      hash_value2 = (hash_value2 + (s1[i] - 'a' + 1) * p_pow1) % m1;
    p_pow1 = (p_pow1 * p) % m1;
    pre11[i] = hash_value1;
    if (i < s1.size()) pre21[i] = hash_value2;
  }
}
void compute_hash2() {
  long long hash_value1 = 0, hash_value2 = 0;
  long long p_pow1 = 1, p_pow2 = 1;
  for (int i = 0; i < s1.size(); i++) {
    hash_value1 = (hash_value1 + (s1[i] - 'a' + 1) * p_pow1) % m1;
    p_pow1 = (p_pow1 * p) % m1;
    pre21[i] = hash_value1;
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cin >> s >> s1;
  com();
  compute_hash();
  vector<int> V;
  for (int i = 0; i < s.size(); i++) {
    long long p1, p2;
    long long t1, t2;
    if (i == 0) {
      p2 = pre11[s.size() - 1] - pre11[0];
      if (p2 < 0) p2 += m1;
      p2 = ((p2 % m1) * MMI[i + 1]) % m1;
      if (p2 == pre21[s1.size() - 1]) V.push_back(i + 1);
    } else if (i == s.size() - 1) {
      if (pre21[i - 1] == pre11[i - 1]) V.push_back(i + 1);
    } else {
      p2 = pre11[s.size() - 1] - pre11[i];
      if (p2 < 0) p2 += m1;
      p2 = ((p2 % m1) * MMI[i + 1]) % m1;
      t2 = pre21[s1.size() - 1] - pre21[i - 1];
      if (t2 < 0) t2 += m1;
      t2 = ((t2 % m1) * MMI[i]) % m1;
      if (p2 == t2 && pre21[i - 1] == pre11[i - 1]) V.push_back(i + 1);
    }
  }
  cout << V.size() << endl;
  for (int i = 0; i < V.size(); i++) cout << V[i] << ' ';
}
