#include <bits/stdc++.h>
using namespace std;
int n, s, k;
int r[51];
int color[51];
vector<int> v[51];
int pd[2001][51];
int func(int c, int idx) {
  if (c <= 0) return 0;
  if (pd[c][idx] != -1) return pd[c][idx];
  int ans = 1000000;
  for (int i = 0; i < v[idx].size(); i++) {
    int t = v[idx][i];
    int cost = abs(idx - t);
    ans = min(ans, func(c - r[t], t) + cost);
  }
  return pd[c][idx] = ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> s >> k;
  s--;
  memset(pd, -1, sizeof pd);
  for (int i = 0; i < n; i++) cin >> r[i];
  string sColors;
  cin >> sColors;
  for (int i = 0; i < n; i++) {
    color[i] = ((sColors[i] == 'R') ? 0 : ((sColors[i] == 'G') ? 1 : 2));
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (r[j] > r[i] && color[i] != color[j]) {
        v[i].push_back(j);
      }
    }
  }
  int best = 1000000;
  for (int i = 0; i < n; i++) {
    best = min(best, func(k - r[i], i) + abs(s - i));
  }
  if (best > 51 * 51) best = -1;
  cout << best << endl;
  return 0;
}
