#include <bits/stdc++.h>
using namespace std;
map<string, int> a;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  while (n--) {
    int temp_val;
    string temp_s;
    cin >> temp_val >> temp_s;
    sort(temp_s.begin(), temp_s.end());
    if (a[temp_s] < 1)
      a[temp_s] = temp_val;
    else
      a[temp_s] = min(a[temp_s], temp_val);
  }
  int ans = INT_MAX;
  if (a["A"] >= 1 && a["B"] >= 1 && a["C"] >= 1) ans = a["A"] + a["B"] + a["C"];
  if (a["A"] >= 1 && a["BC"] >= 1) ans = min(ans, a["A"] + a["BC"]);
  if (a["C"] >= 1 && a["AB"] >= 1) ans = min(ans, a["C"] + a["AB"]);
  if (a["B"] >= 1 && a["AC"] >= 1) ans = min(ans, a["B"] + a["AC"]);
  if (a["AB"] >= 1 && a["BC"] >= 1) ans = min(ans, a["AB"] + a["BC"]);
  if (a["AC"] >= 1 && a["AB"] >= 1) ans = min(ans, a["AC"] + a["AB"]);
  if (a["BC"] >= 1 && a["AC"] >= 1) ans = min(ans, a["BC"] + a["AC"]);
  if (a["ABC"] >= 1) ans = min(ans, a["ABC"]);
  if (ans == INT_MAX)
    cout << -1 << endl;
  else
    cout << ans << endl;
  return 0;
}
