#include <bits/stdc++.h>
namespace Template {
using namespace std;
const int MOD = 1e9 + 7;
const double eps = 1e-9;
struct debugger {
  template <typename T>
  debugger& operator,(const T& v) {
    cerr << v << " ";
    return *this;
  }
} dbg;
template <typename T>
void sci(T& t) {
  cin >> t;
}
template <typename T, typename... Ts>
void sci(T& t, Ts&... ts) {
  cin >> t;
  sci(ts...);
}
};  // namespace Template
using namespace Template;
void solve() {
  int n;
  sci(n);
  ;
  string s;
  sci(s);
  vector<int> a(26, 0);
  for (int i = 0; i < (int)n; ++i)
    if (s[i] != '?') ++a[s[i] - 'A'];
  int mxCnt = *max_element(a.begin(), a.end());
  if (mxCnt * 4 > n || n % 4 != 0) {
    cout << "===\n";
    return;
  }
  mxCnt = ((mxCnt) > (n / 4) ? (mxCnt) : (n / 4));
  int b[] = {'A', 'G', 'C', 'T'};
  int in = 0;
  for (int i = 0; i < (int)n; ++i) {
    if (s[i] == '?') {
      if (a[b[in] - 'A'] < mxCnt) {
        s[i] = b[in];
        a[b[in] - 'A']++;
        if (a[b[in] - 'A'] == mxCnt) in++;
      } else {
        in++;
        --i;
      }
    }
  }
  cout << s << '\n';
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  ;
  solve();
  return 0;
}
