package q5; import java.util.*; public class Main { public static HashSet ban = new HashSet<>(); public static StringBuilder sb = new StringBuilder(); public static String h = "GCP"; public static boolean ans = false; public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); String[] s = new String[n]; for(int i = 0;i < n;i++) { s[i] = sc.next(); }int l = 12; for(int i = 0;i < n;i++) { StringBuilder sb = new StringBuilder(); for(int j = 0;j < Math.min(l, m);j++) { for(int k = 0;k < 3;k++) { if(h.charAt(k) == s[i].charAt(j)) { ban.add(sb.toString() + h.charAt((k + 1) % 3)); } }sb.append(s[i].charAt(j)); }ban.add(sb.toString()); }//System.out.println(ban); dfs(0,Math.min(m, l),m); if(!ans)System.out.print(-1); }public static void dfs(int l,int size,int m) { if(l == size) { if(!ans) { ans = true; System.out.println(sb); for(int i = size;i < m;i++) { System.out.print("G"); } }return; }ban.add(sb.toString()); //System.out.println(sb); for(int i = 0;i < 3;i++) { sb.append(h.charAt(i)); if(!ban.contains(sb.toString()))dfs(l + 1,size,m); sb.deleteCharAt(sb.length() - 1); } } }