#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
const long long mod = 1e9 + 7;
template <typename T>
T gcd(T a, T b) {
  T c;
  while (b) {
    c = b;
    b = a % b;
    a = c;
  }
  return a;
}
template <typename T>
T powmod(T a, T b) {
  T res = 1;
  a %= mod;
  while (b) {
    if (b & 1) res = res * (a % mod);
    a = a * (a % mod);
    b >>= 1;
  }
  return res;
}
int n, k;
int r[55];
int c[55];
int dp[55][2005];
int nxt[55][2005];
int F(int i, int m) {
  if (m >= k) return 0;
  if (dp[i][m] != -1) return dp[i][m];
  int res = 1e9;
  for (int j = 1; j <= n; ++j) {
    if (c[j] != c[i] && r[j] > r[i]) {
      res = min(res, abs(i - j) + F(j, m + r[j]));
    }
  }
  return dp[i][m] = res;
}
void Solve() {
  int s;
  cin >> n >> s >> k;
  for (int i = 1; i <= n; ++i) {
    cin >> r[i];
  }
  for (int i = 1; i <= n; ++i) {
    char ch;
    cin >> ch;
    if (ch == 'R')
      c[i] = 0;
    else if (ch == 'G')
      c[i] = 1;
    else
      c[i] = 2;
  }
  memset(dp, -1, sizeof(dp));
  int ans = 1e9;
  for (int i = 1; i <= n; ++i) {
    ans = min(ans, abs(s - i) + F(i, r[i]));
  }
  if (ans == 1e9) ans = -1;
  cout << ans << '\n';
}
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  Solve();
}
