Program M_power;
var
 a, b, c, ax, bx, cx: array [ 1..100 ] of integer;
 i, j, Ia, n, k, ix, jx, kx: integer;
 Procedure M_mult( ax, bx: array [1..100, 1..100] of integer; var Iax: integer; var cx: array [1..100, 1..100] of integer);
   var ix, jx, kx: integer;
  begin
   for ix:= 1 to Ia do
     for jx:= 1 to Ia do
       for kx:= 1 to Ia do
        cx[ ix, jx ]:= cx[ ix, jx ] + ax[ ix, kx ] * bx[ kx, jx ]; 
  end;
begin
 readln( Ia );
 for i:= 1 to Ia do
  begin
   for j:= 1 to Ia do
    read( a[ i, j ] );
   readln;
  end;
  
  
  readln( n );
  k:= n;
  for i:= 1 to Ia do
   for j:= 1 to Ia do
    if i = j then b[ i, j ]:= 1
    else b[ i, j ]:= 0;
  for i:= 1 to Ia do
   for j:= 1 to Ia do
    c[ i, j ]:= a[ i, j ];
  
  while k <> o do
   if k mod 2 = 0 then
    begin
     k:= k div 2;
     M_mult( c, c, Ia, c );
    end; 
   else
    begin
     k:= k - 1;
     M_mult( b, c, Ia, b );
    end;
   for i:= 1 to Ia do
    begin
     for j:= 1 to Ia do
      write( b[ i, j ] );
     writeln;
    end; 
end. 