#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // C++ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include #define rep(i,j,k) for(int i=(int)j;i<(int)k;i++) #define ll long long #define Sort(v) sort(all(v)) #define INF 1e9 #define LINF 1e18 #define END return 0 #define pb push_back #define se second #define fi first #define pb push_back #define all(v) (v).begin() , (v).end() #define MP make_pair #define MOD 1000000007LL #define int long long using namespace std; int day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; struct edge{int to,cost;}; typedef pair P; bool isupper(char c){if('A'<=c&&c<='Z')return 1;return 0;} bool islower(char c){if('a'<=c&&c<='z')return 1;return 0;} bool isPrime(int x){if(x==1)return 0;if(x==2)return 1;if(x%2==0)return 0;for(int i=3;i*i<=x;i++)if(x%i==0)return 0;return 1;} bool iskaibun(string s){for(int i=0;i v){rep(i,0,v.size()){if(i)cout<<" ";cout< v){rep(i,0,v.size()){cout<> v){ rep(i,0,v.size()){ rep(j,0,v[i].size()){ if(j)cout<<" "; cout< v){ rep(i,0,v.size()){ cout<>h>>w; vector a(h); rep(i,0,h){ cin>>a[i]; } auto check=[&](vector vec){ rep(i,0,h)rep(j,0,w)if(vec[i][j]=='#')return false; return true; }; if(check(a)){ cout<<"NO"< v; v=a; rep(i,0,h){ rep(j,0,w){ if(v[i][j]=='.')continue; if(si==0&&sj==0)continue; int ni=i+si; int nj=j+sj; if(0<=ni&&ni