#include <bits/stdc++.h>
const int MAX_LEN = 1010;
using namespace std;
template <typename U, typename V>
string to_string(pair<U, V>);
string to_string(const string& e_) { return "\"" + e_ + "\""; }
string to_string(char e_) { return "\'" + string(1, e_) + "\'"; }
string to_string(bool e_) { return e_ ? "true" : "false"; }
template <typename T>
string to_string(T e_) {
  string s_ = "[ ";
  for (const auto& x_ : e_) s_ += to_string(x_) + " ";
  return s_ + "]";
}
template <typename U, typename V>
string to_string(pair<U, V> e_) {
  return "(" + to_string(e_.first) + ", " + to_string(e_.second) + ")";
}
void dbg_str() { ; }
template <typename U, typename... V>
void dbg_str(U u, V... v) {
  ;
  dbg_str(v...);
}
int n, m;
char s[1010];
char t[1010];
int ans = 1e9;
int ansi;
int main() {
  scanf("%d %d", &n, &m);
  scanf("%s %s", s, t);
  for (int i = 0; i < m - n + 1; i++) {
    int cur = 0;
    int indx = 0;
    int j;
    for (j = i; j < n + i; j++) {
      if (s[indx++] != t[j]) cur++;
    }
    if (ans > cur) {
      ans = cur;
      ansi = j - n;
    }
  }
  int haha = 0;
  printf("%d\n", ans);
  if (ans == 0) exit(0);
  for (int i = ansi; i < n + ansi; i++)
    if (s[haha++] != t[i]) printf("%d ", haha);
}
