#include char s[100005], ss[100005]; int id[100005], len; char ans[100003]; int main() { int n, m; scanf("%d %d", &n, &m); int i, j, k; for (i = 0; i < n; i++) { scanf("%s", ss); for (j = 0; j < m; j++) s[m * i + j] = ss[j]; } for (i = 0; i < n; i++) id[i] = i; len = n; for (i = 0; i < m; i++) ans[i] = '?'; ans[m] = '\0'; int cnt[4]; char q[4] = "GCP"; for (j = 0; j < m; j++) { cnt[0] = cnt[1] = cnt[2] = 0; for (i = 0; i < len; i++) { if (s[m * id[i] + j] == 'G') cnt[0]++; else if (s[m * id[i] + j] == 'C') cnt[1]++; else cnt[2]++; } if (cnt[0] > 0 && cnt[1] > 0 && cnt[2] > 0) { printf("-1\n"); return 0; } cnt[3] = cnt[0]; for (i = 0; i < 3; i++) { if (cnt[i] > 0 && cnt[i + 1] > 0) { ans[j] = q[i]; k = 0; for (i = 0; i < len; i++) if (s[m * id[i] + j] == ans[j]) id[k++] = id[i]; len = k; break; } } if (ans[j] != '?') continue; for (i = 0; i < 3; i++) if (cnt[i] > 0) ans[j] = q[(i + 2) % 3]; for (j++; j < m; j++) ans[j] = 'G'; printf("%s\n", ans); return 0; } printf("-1\n"); return 0; }