var
  m,n,i,j,s,g,b,flagi,flagj,a1,a2,min,max,ni,nj,xi,xj:longint;
  a:array[1..105,1..105] of char;
begin
  readln(m,n);
  for i:=1 to m do
  begin
    for j:=1 to n do 
      read(a[i,j]);
    readln;
  end;
  for i:=1 to m do
  begin
    for j:=1 to n do if a[i,j]='*' then write('*')
    else 
    begin
      s:=0;
      if a[i,j+1]='*' then inc(s);
      if a[i,j-1]='*' then inc(s);
      if a[i+1,j+1]='*' then inc(s);
      if a[i-1,j+1]='*' then inc(s);
      if a[i+1,j-1]='*' then inc(s);
      if a[i-1,j-1]='*' then inc(s);
      if a[i+1,j]='*' then inc(s);
      if a[i-1,j]='*' then inc(s);
      write(s);
   end;
   writeln;
 end;
end.
/**************************************************************
	Problem: 1580
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/