#include <bits/stdc++.h>
using namespace std;
long long n, ans, a[10001], f[101][101][101];
char s[10001];
long long solve(long long l, long long r, long long op) {
  if (l > r) return 0;
  if (l == r) return a[op];
  if (f[l][r][op]) return f[l][r][op];
  long long i, now = a[op] + solve(l + 1, r, 1);
  for (i = l + 1; i <= r; i++)
    if (s[l] == s[i])
      now = max(now, solve(l + 1, i - 1, 1) + solve(i, r, op + 1));
  return f[l][r][op] = now;
}
int main() {
  long long i;
  scanf("%lld", &n);
  scanf("%s", s + 1);
  for (i = 1; i <= n; i++) scanf("%lld", &a[i]);
  ans = solve(1, n, 1);
  printf("%lld", ans);
}
