#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 50 + 7;
const int MAX_K = 2000 + 7;
const int INF = 0x3f3f3f3f;
int N;
int A[MAX_N];
char B[MAX_N];
int dp[MAX_N][MAX_K];
int dfs(int n, int k) {
  k -= A[n];
  if (k <= 0) return 0;
  int &res = dp[n][k];
  if (res != -1) return res;
  res = INF;
  for (int i = 1; i <= N; i++) {
    if (A[n] < A[i] && B[i] != B[n]) res = min(res, dfs(i, k) + abs(n - i));
  }
  return res;
}
int main() {
  int S, K;
  scanf("%d%d%d", &N, &S, &K);
  for (int i = 1; i <= N; i++) scanf("%d", &A[i]);
  scanf("%s", B + 1);
  memset(dp, -1, sizeof(dp));
  int ans = INF;
  for (int i = 1; i <= N; i++) ans = min(ans, dfs(i, K) + abs(S - i));
  if (ans == INF)
    puts("-1");
  else
    printf("%d\n", ans);
  return 0;
}
