#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
const int oo = 1e8;
const int PI = acos(-1);
map<string, int> in;
long long ans = oo;
int n, a;
string x;
long long min(int a, int b) { return a < b ? a : b; }
int main() {
  cin >> n;
  in["A"] = oo;
  in["B"] = oo;
  in["C"] = oo;
  in["AB"] = oo;
  in["AC"] = oo;
  in["BC"] = oo;
  in["ABC"] = oo;
  for (int i = 0; i < n; i++) {
    cin >> a >> x;
    sort(x.begin(), x.end());
    in[x] = min(a, in[x]);
  }
  ans = min(ans, in["A"] + in["B"] + in["C"]);
  ans = min(ans, in["AB"] + in["C"]);
  ans = min(ans, in["AC"] + in["B"]);
  ans = min(ans, in["BC"] + in["A"]);
  ans = min(ans, in["AB"] + in["BC"]);
  ans = min(ans, in["AC"] + in["AB"]);
  ans = min(ans, in["AC"] + in["BC"]);
  ans = min(ans, in["A"] + in["B"] + in["AC"]);
  ans = min(ans, in["A"] + in["B"] + in["BC"]);
  ans = min(ans, in["A"] + in["C"] + in["AB"]);
  ans = min(ans, in["A"] + in["C"] + in["BC"]);
  ans = min(ans, in["B"] + in["C"] + in["AC"]);
  ans = min(ans, in["B"] + in["C"] + in["AB"]);
  ans = min(ans, in["A"] + in["AC"] + in["AB"]);
  ans = min(ans, in["B"] + in["AC"] + in["BC"]);
  ans = min(ans, in["C"] + in["AB"] + in["BC"]);
  ans = min(ans, in["ABC"]);
  if (ans >= oo || ans <= 0)
    puts("-1");
  else
    cout << ans;
  return 0;
}
