#include <bits/stdc++.h>
using namespace std;
char get(char a, char b) {
  if (a > b) swap(a, b);
  if (a == 'a' && b == 'b') return 'c';
  if (a == 'a' && b == 'c') return 'b';
  if (a == 'b' && b == 'c') return 'a';
  if (a == b) {
    if (a == 'c')
      return 'a';
    else
      return a + 1;
  }
}
char get(char a) {
  if (a == 'c') return 'a';
  return a + 1;
}
int main() {
  int i, j, t;
  scanf("%d", &t);
  while (t--) {
    string str;
    cin >> str;
    bool flag = true;
    for (i = 0; i < str.size(); i++) {
      if (i + 1 < str.size() && str[i] != '?' && str[i] == str[i + 1])
        flag = false;
    }
    if (!flag) {
      cout << -1 << endl;
      continue;
    }
    if (str.size() == 1) {
      if (str[0] == '?') str[0] = 'a';
      cout << str << endl;
      continue;
    }
    for (i = 0; i < str.size(); i++) {
      if (str[i] != '?') continue;
      if (i == 0) {
        if (str[i + 1] != '?')
          str[i] = get(str[i + 1]);
        else {
          str[i] = 'a';
        }
      } else if (i == str.size() - 1) {
        str[i] = get(str[i - 1]);
      } else {
        if (str[i + 1] == '?')
          str[i] = get(str[i - 1]);
        else
          str[i] = get(str[i - 1], str[i + 1]);
      }
    }
    cout << str << endl;
  }
}
