#include <bits/stdc++.h>
using namespace std;
string t, p;
int x[200011];
bool rem[200011];
bool ok(int L) {
  for (int i = 0; i < L + 1; i++) {
    rem[x[i]] = 1;
  }
  int j = 0;
  for (int i = 0; i < t.size(); i++) {
    if (rem[i]) continue;
    if (j < p.size() and t[i] == p[j]) j++;
  }
  for (int i = 0; i < L + 1; i++) {
    rem[x[i]] = 0;
  }
  return (j == p.size());
}
int main() {
  cin >> t >> p;
  for (int i = 0; i < t.size(); i++) {
    cin >> x[i];
    x[i]--;
  }
  int lo = -1;
  int hi = t.size();
  int mid;
  while (hi - lo > 1) {
    mid = (hi + lo) / 2;
    if (ok(mid))
      lo = mid;
    else
      hi = mid;
  }
  cout << lo + 1;
}
