#include <bits/stdc++.h>
using namespace std;
const char duom[] = "i.txt";
int dp[2601][51];
char letter[60];
int amount[60];
int main() {
  memset(dp, -1, sizeof(dp));
  int n, s, k;
  int d;
  cin >> n >> s >> k;
  s--;
  for (int i = 0; i < n; i++) {
    cin >> amount[i];
  }
  for (int i = 0; i < n; i++) {
    cin >> letter[i];
  }
  for (int i = 0; i < n; i++) {
    dp[amount[i]][i] = abs(s - i);
  }
  for (int value = 0; value < 2600; value++) {
    for (int pos = 0; pos < n; pos++) {
      if (dp[value][pos] == -1) {
        continue;
      }
      for (int new_pos = 0; new_pos < n; new_pos++) {
        if (letter[pos] == letter[new_pos] || amount[pos] >= amount[new_pos]) {
          continue;
        }
        d = dp[value][pos] + abs(pos - new_pos);
        if (value + amount[new_pos] >= 2600) {
          continue;
        }
        if (dp[value + amount[new_pos]][new_pos] == -1 ||
            d < dp[value + amount[new_pos]][new_pos]) {
          dp[value + amount[new_pos]][new_pos] = d;
        }
      }
    }
  }
  int minimum = 5000;
  for (int i = k; i < 2600; i++) {
    for (int j = 0; j < n; j++) {
      if (dp[i][j] == -1) {
        continue;
      } else if (dp[i][j] < minimum) {
        minimum = dp[i][j];
      }
    }
  }
  if (minimum == 5000) {
    cout << -1;
  } else {
    cout << minimum;
  }
  return 0;
}
