#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  string s;
  cin >> s;
  int arr[5];
  memset(arr, 0, sizeof(arr));
  for (int i = 0; i < (int)s.size(); i++) {
    if (s[i] == 'A')
      arr[0]++;
    else if (s[i] == 'T')
      arr[1]++;
    else if (s[i] == 'C')
      arr[2]++;
    else if (s[i] == 'G')
      arr[3]++;
    else
      arr[4]++;
  }
  int bada = 0;
  for (int i = 0; i < (int)4; i++) {
    bada = max(bada, arr[i]);
  }
  int a = bada - arr[0];
  int b = bada - arr[1];
  int c = bada - arr[2];
  int d = bada - arr[3];
  if ((a + b + c + d) <= arr[4] && (arr[4] - (a + b + c + d)) % 4 == 0) {
    int tp = arr[4] - (a + b + c + d);
    tp /= 4;
    a += tp;
    b += tp;
    c += tp;
    d += tp;
    for (int i = 0; i < (int)s.size(); i++) {
      if (a == 0) break;
      if (s[i] == '?') {
        s[i] = 'A';
        a--;
      }
    }
    for (int i = 0; i < (int)s.size(); i++) {
      if (b == 0) break;
      if (s[i] == '?') {
        s[i] = 'T';
        b--;
      }
    }
    for (int i = 0; i < (int)s.size(); i++) {
      if (c == 0) break;
      if (s[i] == '?') {
        s[i] = 'C';
        c--;
      }
    }
    for (int i = 0; i < (int)s.size(); i++) {
      if (d == 0) break;
      if (s[i] == '?') {
        s[i] = 'G';
        d--;
      }
    }
    cout << s;
  } else
    cout << "===";
}
