N, M = map(int, input().split()) S = [input() for _ in range(N)] A = ["G", "C", "P"] ans = [] F = [False]*N for j in range(M): SET = set() for i in range(N): if not F[i]: SET.add(S[i][j]) if len(SET) == 1: ans.append(A[(A.index(SET.pop())-1)%3]) elif len(SET) == 2: if "G" not in SET: ans.append("C") elif "C" not in SET: ans.append("P") else: ans.append("G") elif len(SET) == 3: exit(print(-1)) else: break for i in range(N): if (A.index(ans[-1])+1)%3 == A.index(S[i][j]): F[i] = True while len(ans) < M: ans.append("G") print("".join(ans) if sum(F) == N else -1)