#include <bits/stdc++.h>
using namespace std;
int mem[60][2010][5], k, a[60], s[60], n;
int dp(int x, int mx, int col) {
  if (mx >= k) return 0;
  if (mem[x][mx][col] != -1) return mem[x][mx][col];
  int res = 10000;
  for (int i = 1; i <= n; ++i) {
    if (a[i] <= a[x] || s[i] == col) continue;
    res = min(res, abs(i - x) + dp(i, mx + a[i], s[i]));
  }
  mem[x][mx][col] = res;
  return res;
}
int main() {
  int f;
  while (cin >> n >> f >> k) {
    for (int i = 0; i < n; ++i) {
      cin >> a[i + 1];
    }
    string c;
    cin >> c;
    for (int i = 0; i < c.size(); ++i) {
      if (c[i] == 'R')
        s[i + 1] = 1;
      else if (c[i] == 'G')
        s[i + 1] = 2;
      else
        s[i + 1] = 3;
    }
    memset(mem, -1, sizeof mem);
    int ans = 10000;
    for (int i = 1; i <= n; ++i) {
      ans = min(ans, abs(i - f) + dp(i, a[i], s[i]));
    }
    if (ans == 10000)
      cout << -1 << endl;
    else
      cout << ans << endl;
  }
  return 0;
}
