#include <bits/stdc++.h>

using namespace std;

int n, m;
string s, t;

int main() {
  int left[200500], right[200500];
  cin >> n >> m >> s >> t;
  int cnt = 0;
  for(int i = 0; i < n; i++){
    if(cnt == m)
      break;
    if(s[i] == t[cnt]){
      left[cnt] = i;
      cnt++;
    }
  }
  cnt = m - 1;
  for(int i = n - 1; i >= 0; i--){
    if(cnt == -1)
      break;
    if(s[i] == t[cnt]){
      right[cnt] = i;
      cnt--;
    }
  }
  int mx = 0;
  for(int i = 1; i < m; i++){
    mx = max(mx, right[i] - left[i-1]);
  }
  cout << mx;
  return 0;
}