#include <bits/stdc++.h>
int main() {
  int i, j, n, a = 0, g = 0, c = 0, t = 0, q = 0, k, af = 0, gf = 0, cf = 0,
               tf = 0;
  scanf("%d", &n);
  k = n / 4;
  char name[n];
  scanf("%s", name);
  if (n % 4 != 0) {
    printf("===");
    return 0;
  }
  for (i = 0; i < n; i++) {
    if (name[i] == 'A') {
      a += 1;
      if (a > k) {
        printf("===");
        return 0;
      }
      if (a == k) af = 1;
    }
    if (name[i] == 'C') {
      c += 1;
      if (c > k) {
        printf("===");
        return 0;
      }
      if (c == k) cf = 1;
    }
    if (name[i] == 'G') {
      g += 1;
      if (g > k) {
        printf("===");
        return 0;
      }
      if (g == k) gf = 1;
    }
    if (name[i] == 'T') {
      t += 1;
      if (t > k) {
        printf("===");
        return 0;
      }
      if (t == k) tf = 1;
    } else {
      q += 1;
    }
  }
  char left[q];
  a = (af == 1) ? 0 : (k - a);
  c = (cf == 1) ? 0 : (k - c);
  g = (gf == 1) ? 0 : (k - g);
  t = (tf == 1) ? 0 : (k - t);
  for (j = 0; j < n; j++) {
    if (name[j] == '?') {
      if (a != 0) {
        name[j] = 'A';
        a -= 1;
        continue;
      }
      if (c != 0) {
        name[j] = 'C';
        c -= 1;
        continue;
      }
      if (g != 0) {
        name[j] = 'G';
        g -= 1;
        continue;
      }
      if (t != 0) {
        name[j] = 'T';
        t -= 1;
        continue;
      }
    }
  }
  printf("%s\n", name);
  return 0;
}
