// Arup Guha
// 2/9/2013
// Solution to 2010 MCPC Problem H: Image Compression

import java.util.*;

public class h {

	public static void main(String[] args) {

		Scanner stdin = new Scanner(System.in);
		int size = stdin.nextInt();
		int loop = 1;
		
		// Go through each case.
		while (size != 0) {

			int perc = stdin.nextInt();

			// Read in this grid.
			char[][] grid = new char[size][size];
			for (int i=0; i<size; i++) {
				String s = stdin.next();
				for (int j=0; j<size; j++)
					grid[i][j] = s.charAt(j);
			}

			// Solve and output.
			solve(grid, perc);
			System.out.println("Image "+loop+":");
			print(grid);

			// Get next case.
			loop++;
			size = stdin.nextInt();
		}
	}

	// Wrapper Function
	public static void solve(char[][] grid, int perc) {
		solveRec(grid, grid.length, 0, 0, perc);
	}

	// Recursive function
	public static void solveRec(char[][] grid, int size, int sx, int sy, int perc) {

		int cnt = countOnes(grid, size, sx, sy);

		// Base Case fill 1s - see if we don't have to split.
		if ((double)cnt/(size*size) >= perc/100.0-1e-12)
			fill(grid, size, sx, sy, '1');

		// Base Case fill 0s
		else if ((double)cnt/(size*size) <= (100-perc)/100.0+1e-12)
			fill(grid, size, sx, sy, '0');

		// Break down recursively.
		else {
			solveRec(grid, size/2, sx, sy+size/2, perc);
			solveRec(grid, size/2, sx, sy, perc);
			solveRec(grid, size/2, sx+size/2, sy, perc);
			solveRec(grid, size/2, sx+size/2, sy+size/2, perc);
		}
	}

	// Fills the desired range.
	public static void fill(char[][] grid, int size, int sx, int sy, char val) {
		for (int i=sx; i<sx+size; i++)
			for (int j=sy; j<sy+size; j++)
				grid[i][j] = val;
	}

	// Counts the number of 1s in the desired range.
	public static int countOnes(char[][] grid, int size, int sx, int sy) {
		int cnt = 0;
		for (int i=sx; i<sx+size; i++)
			for (int j=sy; j<sy+size; j++)
				if (grid[i][j] == '1')
					cnt++;
		return cnt;
	}

	// Prints grid.
	public static void print(char[][] grid) {
		for (int i=0; i<grid.length; i++) {
			for (int j=0; j<grid[0].length; j++)
				System.out.print(grid[i][j]);
			System.out.println();
		}
	}
}