#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
char ch[100][100];
char chh[100][100];
int ans1,ans2;
int a[1000],b[1000];
int c[1000],d[1000];
signed main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>ch[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>chh[i][j];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(ch[i][j]=='#')
{
ans1++;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(chh[i][j]=='#')
{
ans2++;
}
}
}
if(ans1!=ans2) return cout<<"No",0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(ch[i][j]=='#')
{
a[i]++;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(chh[i][j]=='#')
{
b[i]++;
}
}
}
bool bo=0;
bool kk=1;
for(int i=1;i<=n;i++)
{
bo=0;
for(int j=i,k=1;j<=n+i-1;j++,k++)
{
if(j%n==0)
{
if(a[n]!=b[k]) bo=1;
}
else
{
if(a[j%n]!=b[k]) bo=1;
}
}
if(!bo)
{
kk=0;
}
}
if(kk==1) return cout<<"No",0;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(ch[j][i]=='#')
{
c[i]++;
}
}
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(chh[j][i]=='#')
{
d[i]++;
}
}
}
bo=0;
kk=1;
for(int i=1;i<=m;i++)
{
bo=0;
for(int j=i,k=1;j<=m+i-1;j++,k++)
{
if(j%m==0)
{
if(c[m]!=d[k]) bo=1;
}
else
{
if(c[j%m]!=d[k]) bo=1;
}
}
if(!bo)
{
kk=0;
}
}
if(kk==1) return cout<<"No",0;
else cout<<"Yes";
}
RT,我的代码,WA了6个点,不知道为啥pwp