#include <bits/stdc++.h>
using namespace std;
const long long N = 51;
long long dp[N][2503];
void solve() {
  long long n, start, k;
  cin >> n >> start >> k;
  --start;
  long long a[n];
  for (long long i = 0; i < n; ++i) cin >> a[i];
  string s;
  cin >> s;
  vector<pair<long long, long long>> v;
  for (long long i = 0; i < n; ++i) v.push_back({a[i], i});
  sort(v.begin(), v.end());
  for (long long i = 0; i < n; ++i)
    for (long long j = 0; j <= 2500; ++j) dp[i][j] = 1e11;
  long long inf = dp[0][0];
  for (long long i = 0; i < n; ++i) {
    dp[i][v[i].first] = abs(v[i].second - start);
    for (long long j = i - 1; j >= 0; --j) {
      if (v[j].first < v[i].first && s[v[j].second] != s[v[i].second]) {
        for (long long x = 0; x <= k; ++x) {
          dp[i][x + v[i].first] = min(
              dp[i][x + v[i].first], dp[j][x] + abs(v[i].second - v[j].second));
        }
      }
    }
  }
  long long ans = inf;
  for (long long i = 0; i < n; ++i) {
    for (long long j = 0; j <= 2500; ++j) {
      if (j >= k) ans = min(ans, dp[i][j]);
    }
  }
  if (ans == inf) ans = -1;
  cout << ans << '\n';
}
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  long long t;
  t = 1;
  while (t--) solve();
}
