#include<string>
#include<string.h>
#include<map>
#include<set>
#include<vector>
#include<stdio.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
int h,w;
bool a[155][155];
char c[155][155];
void dfs(int x,int y){
  a[x][y]=true;
  for(int i=0;i<h;i++)
    for(int j=0;j<w;j++){
      if((x==i && || y==j) && a[i][j]==false && c[i][j]=='#')
        dfs(i,j);
}}
int main()
{
  int ax=100000,by=100000;
  cin>>h>>w;
  for(int i=0;i<h;i++)
    for(int j=0;j<w;j++){
      cin>>c[i][j];
      if(c[i][j]=='.')
        a[i][j]=true;
      else
       {ax=i;
        by=j;}
  }
  if(ax==100000 && by==100000)
    {cout<<"Yes";
     system("pause");
     exit(0);}
  dfs(ax,by);
  for(int i=0;i<h;i++)
    for(int j=0;j<w;j++)
    {if(a[i][j]==false)
     {cout<<"No";
      system("pause");
      return 0;}}
cout<<"Yes";
system("pause");
return 0;
}