← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	fmt.Fscan(reader, &t)

	for i := 0; i < t; i++ {
		var s string
		fmt.Fscan(reader, &s)

		bytes := []byte(s)
		n := len(bytes)
		possible := true

		for j := 0; j < n; j++ {
			if bytes[j] == '?' {
				for c := byte('a'); c <= 'c'; c++ {
					if (j > 0 && bytes[j-1] == c) || (j < n-1 && bytes[j+1] == c) {
						continue
					}
					bytes[j] = c
					break
				}
			} else if j > 0 && bytes[j] == bytes[j-1] {
				possible = false
				break
			}
		}

		if possible {
			fmt.Fprintln(writer, string(bytes))
		} else {
			fmt.Fprintln(writer, "-1")
		}
	}
}