import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Serializable;
import java.util.Scanner;
public class RunLength {
private int[][] bits;
private int rows,columns;
RunLength() throws IOException{
Scanner sc =
new Scanner(System.in);
if (!sc.next().equals("P1"))
throw new IOException("Format error");
columns=sc.nextInt();
rows=sc.nextInt();
bits=new int[rows][columns];
for (int i=0; i< rows; i++){
String line=sc.next();
for (int j=0; j<columns; j++)
bits[i][j]=line.charAt(j)-'0';
}
}
public void encode(){
for (int i=0; i< rows; i++){
int start=0;
System.out.print(bits[i][0]);
while (start<columns){
int end=findRun(i,start);
System.out.print(" "+(end-start+1));
start=end+1;
}
System.out.println();
}
}
private int findRun(int inRow, int startCol){
int value=bits[inRow][startCol];
int cursor=startCol;
while(cursor<columns &&
bits[inRow][cursor] == value)
cursor++;
return cursor-1;
}
public String toString(){
String result="";
for (int i=0; i< rows; i++){
for (int j=0; j<columns; j++){
if (bits[i][j]==1)
result += "*";
else
result += " ";
}
result +="\n";
}
return result;
}
public static void main(String [] args) throws IOException{
RunLength rl = new RunLength();
// System.out.println(rl);
rl.encode();
}
}
//@keywords: array, 2D array, bitmap, file, image processing