#include <bits/stdc++.h>
static const auto fast = []() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(0);
  std::cout.tie(0);
  return 0;
}();
using namespace std;
bool fun(string t, string p, int x, vector<int> &v) {
  for (int i = 0; i < x; i++) {
    t[v[i]] = ',';
  }
  int j = 0;
  int i;
  for (i = 0; i < p.size(); i++) {
    while (j < t.size() and t[j] != p[i]) {
      j++;
    }
    if (j == t.size()) return false;
    j++;
  }
  if (i == p.size()) return true;
  return false;
}
int main() {
  string t, p;
  cin >> t >> p;
  t = "," + t;
  vector<int> v;
  for (int i = 0; i < t.size() - 1; ++i) {
    int x;
    cin >> x;
    v.push_back(x);
  }
  int l = v.size();
  int ans = 0;
  for (int i = l / 2; i >= 1; i = i / 2) {
    while (ans + i <= l and fun(t, p, ans + i, v)) {
      ans = ans + i;
    }
  }
  cout << ans;
}
