#include <bits/stdc++.h>
using namespace std;
struct point {
  int x, y;
  bool operator<(const point &a) const { return x < a.x; }
};
priority_queue<int> que;
char s1[1100], s2[1100];
int a[1100], b[1100];
int main() {
  int n, m, minn = 9999, l;
  scanf("%d%d", &n, &m);
  getchar();
  scanf("%s%s", s1, s2);
  for (int i = 0; i <= m - n; i++) {
    int temp = 0;
    for (int j = 0; j < n; j++) {
      if (s1[j] != s2[i + j]) {
        temp++;
        if (temp > minn) break;
        a[temp] = j + 1;
      }
    }
    if (temp < minn) {
      minn = temp;
      for (int j = 1; j <= minn; j++) {
        b[j] = a[j];
      }
    }
  }
  printf("%d\n", minn);
  if (minn) printf("%d", b[1]);
  for (int j = 2; j <= minn; j++) {
    printf(" %d", b[j]);
  }
  printf("\n");
  return 0;
}
