https://www.acmicpc.net/problem/16956
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner s=new Scanner(System.in);
int r=s.nextInt();
int c=s.nextInt();
char arr[][]=new char[r][c];
for(int i=0;i<r;i++){
String st=s.next();
for(int j=0;j<c;j++){
arr[i][j]=st.charAt(j);
}
}
boolean check=true;
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
if(arr[i][j]=='W'){
for(int k=0;k<4;k++){
int x=i+dx[k];
int y=j+dy[k];
if(x>=0 && x<r && y>=0 && y<c){
if(arr[x][y]=='.'){
arr[x][y]='D';
}
else if(arr[x][y]=='S'){
check=false;
System.out.println(0);
return;
}
}
}
}
}
}
if(!check) System.out.println(0);
else{
System.out.println(1);
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
System.out.print(arr[i][j]);
}
System.out.println();
}
}
}
}