#include <bits/stdc++.h>
using namespace std;
int n;
string s;
long long int a[101];
long long int dp[101][101][101];
long long int f(int start, int end, int l) {
  if (start > end) {
    return 0;
  }
  if (start == end) {
    return a[l];
  }
  if (dp[start][end][l] != 0) {
    return dp[start][end][l];
  }
  long long int ans = a[l] + f(start + 1, end, 1);
  for (int i = start + 1; i <= end; i++) {
    if (s[i] == s[start]) {
      ans = max(ans, f(start + 1, i - 1, 1) + f(i, end, l + 1));
    }
  }
  dp[start][end][l] = ans;
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> s;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  a[0] = 0;
  cout << f(0, n - 1, 1);
}
