#include #include #include int cmp_char_arr (const void *a, const void *b) { return strcmp((char *)a, (char *)b); } int main () { int t = 0; int n = 0; char s[1011] = ""; int res = 0; char ans[1000][1001] = {}; char hw[11] = "helloworld"; res = scanf("%d", &t); while (t > 0) { res = scanf("%d", &n); res = scanf("%s", s); for (int i = 0; i < n; i++) { int is_ok = 1; for (int j = 0; j < 10; j++) { if (s[i+j] != '?' && s[i+j] != hw[j]) { is_ok = 0; } } if (is_ok > 0) { for (int j = 0; j < n; j++) { if (s[j] == '?') { ans[i][j] = 'a'; } else { ans[i][j] = s[j]; } } for (int j = 0; j < 10; j++) { ans[i][i+j] = hw[j]; } } else { for (int j = 0; j < n; j++) { ans[i][j] = '~'; } } ans[i][n] = '\0'; } qsort(ans, n, sizeof(char)*1001, cmp_char_arr); if (ans[0][0] == '~') { printf("-1\n"); } else { printf("%s\n", ans[0]); } t--; } return 0; }