#include <bits/stdc++.h>
using namespace std;
long long power(long long x, long long y) {
  long long temp;
  if (y == 0) return 1;
  temp = power(x, y / 2);
  if (y % 2 == 0)
    return temp * temp;
  else {
    if (y > 0)
      return x * temp * temp;
    else
      return (temp * temp) / x;
  }
}
long long fast_power(long long x, long long n, long mood) {
  if (n == 0)
    return 1;
  else if (n % 2 == 0)
    return fast_power(x * x, n / 2, mood);
  else
    return (x * fast_power((x * x) % mood, (n - 1) / 2, mood));
}
string s;
int dp[50][2000], r[50], n;
const int inf = 1e6;
int abs(int a) { return a > 0 ? a : -a; }
int zeft(int id, int k) {
  if (k <= 0) return 0;
  if (dp[id][k]) return dp[id][k];
  dp[id][k] = inf;
  for (int i = 0; i < n; i++) {
    if (s[i] == s[id] or r[i] <= r[id]) continue;
    dp[id][k] = min(dp[id][k], abs(i - id) + zeft(i, k - r[i]));
  }
  return dp[id][k];
}
int solve(int st, int k) {
  int ans = inf;
  for (int id = 0; id < n; id++)
    ans = min(ans, abs(st - id) + zeft(id, k - r[id]));
  return ans == inf ? -1 : ans;
}
int main() {
  int st, k;
  cin >> n >> st >> k;
  for (int i = 0; i < n; i++) cin >> r[i];
  cin >> s;
  cout << solve(st - 1, k) << endl;
}
