import java.awt.Point;
import java.io.*;
import java.util.Arrays;
import java.util.LinkedList;
public class solution5 {

	static char[][] bananas;
	static  LinkedList<Point> used;
	static LinkedList<Integer> rooms;
	public static void main(String[] args) throws NumberFormatException, IOException{
		BufferedReader r = new BufferedReader(new FileReader("Data5.txt"));
		PrintWriter pw = new PrintWriter(new FileWriter("Out5.txt"));
		bananas = new char[Integer.parseInt(r.readLine())][Integer.parseInt(r.readLine())];
		for(int j = 0 ; j < bananas.length; j++){
			String current = r.readLine();
			for(int i = 0 ; i < bananas[0].length; i++){
				bananas[j][i] = current.charAt(i); 
			}	
		}
		for(int i = 0 ; i < 5; i++){						
			for(int j = 0 ; j < bananas.length; j++){
				for(int k = 0 ; k < bananas[0].length;k++){
					if(bananas[j][k]=='1' + i){
						used =new LinkedList<Point>();
						rooms = new LinkedList<Integer>();
						recurse(j,k);
						int[] room = new int[rooms.size()];
						for(int q = 0; q < rooms.size(); q++){
							room[q] = rooms.get(q);
						}
						Arrays.sort(room);
						pw.print((i+1)+":");
						for(int z = 0 ; z < rooms.size() -1; z++){
							if(room[z] != i +1){
								pw.print(room[z] + " ");   
							}
						}
						if(room[room.length -1] != i +1){
							pw.print(room[room.length -1] + "\n");   
						}else{
							pw.println();
						}
						break;
					}
				}
			}
		}
		pw.close();
	}



	public static void recurse(int x, int y){
		if(x > bananas.length -1 || x < 0|| y < 0 || y > bananas[0].length -1 || bananas[x][y] == '#'){
			return ;
		}
		for (int i = 0; i < used.size(); i++){			
			if (used.get(i).getX()==x&&used.get(i).getY()==y){
				return ;
			}	
		}
		if(bananas[x][y] >= '1' && bananas[x][y] <= '9'){
			rooms.add(Integer.parseInt(bananas[x][y] + ""));
		}
		used.add(new Point (x,y));
		if ( bananas[x][y] <= 'z' && bananas [x][y] >= 'a'){
			for (int i = 0; i < bananas.length;i++){
				for (int p =0; p < bananas[1].length; p++){
					if ((bananas [i][p] + "").equals((bananas [x][y] +"").toUpperCase())){
						recurse (i, p);
						break;
					}
				}
			}
		}
		recurse(x+1,y);
		recurse(x-1,y);
		recurse(x,y+1);
		recurse(x,y-1);
	}
}

