#include using namespace std; int main() { int N; cin >> N; int M; cin >> M; constexpr int bound_M = 6; int ij[bound_M][2]; for( int m = 0 ; m < M ; m++ ){ cin >> ij[m][0] >> ij[m][1]; } set vertex_exception{}; for( int i = 0 ; i < 3 ; i++ ){ int v; cin >> v; vertex_exception.insert( v ); } for( int m0 = 0 ; m0 < M ; m0++ ){ for( int m1 = 0 ; m1 < M ; m1++ ){ if( m0 == m1 ){ continue; } int count1 = 0; int start0; int end0; int end1; for( int s = 0 ; s < 2 ; s++ ){ for( int t = 0 ; t < 2 ; t++ ){ if( ij[m0][s] == ij[m1][t] ){ count1++; start0 = ij[m0][1-s]; end0 = ij[m0][s]; end1 = ij[m1][1-t]; } } } if( count1 != 1 ){ continue; } for( int m2 = 0 ; m2 < M ; m2++ ){ if( m0 == m2 || m1 == m2 ){ continue; } int count2 = 0; int end2; for( int t = 0 ; t < 2 ; t++ ){ if( end1 == ij[m2][t] ){ count2++; end2 = ij[m2][1-t]; } } if( count2 != 1 ){ continue; } if( end2 == start0 ){ set vertex{ end0 , end1 , end2 }; if( vertex != vertex_exception ){ cout << "Yes\n"; return 0; } continue; } for( int m3 = 0 ; m3 < M ; m3++ ){ if( m0 == m3 || m1 == m3 || m2 == m3 ){ continue; } int count3 = 0; int end3; for( int t = 0 ; t < 2 ; t++ ){ if( end2 == ij[m3][t] ){ count3++; end3 = ij[m3][1-t]; } } if( count3 != 1 ){ continue; } if( end3 != start0 || end3 == end0 ){ continue; } cout << "Yes\n"; return 0; } } } } cout << "No\n"; return 0; }