#include <bits/stdc++.h>
using namespace std;
struct node{
int x,y;
}a[10],b[10];
int ans[10],vis[10],n,m;
bool check(){
bool y[10][10]={false};
bool z[10][10]={false};
for(int i=1;i<=m;i++){
int p=b[i].x;
int q=b[i].y;
y[p][q]=y[q][p]=true;
}
for(int i=1;i<=m;i++){
int p=ans[a[i].x];
int q=ans[a[i].y];
z[p][q]=z[q][p]=true;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(y[i][j]!=z[i][j]){
return false;
}
}
}
return true;
}
void dfs(int x){
if(x==n+1){
if(check()){
cout<<"Yes";
exit(0);
}
return;
}else{
for(int i=1;i<=n;i++){
if(!vis[i]){
vis[i]=1;
ans[x]=i;
dfs(x+1);
vis[i]=0;
}
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a[i].x>>a[i].y;
}
for(int i=1;i<=m;i++){
cin>>b[i].x>>b[i].y;
}
dfs(1);
cout<<"No";
}
?dfs?