Ստուգել, թե արդյոք գրաֆը երկմասյա է

Գրաֆը կոչվում է երկմասյա, եթե կարելի է այն ներկել երկու գույներով այնպես, որ հարակից (կից) որևէ երկու գագաթներ չունենան նույն գույնը:

Երկմասյա լինելը պարզելը թույլ է տալիս բացահայտել որոշակի կառուցվածքներ և հատկություններ, ինչը նպաստում է արդյունավետ խնդիրների լուծմանը տարբեր ոլորտներում, օրինակ՝ ժամանակացույցերի կառուցում, ռեսուրսների բաշխում և հակասությունների կարգավորում: Բացի այդ, երկմասյա գրաֆերը հնարավորություն են տալիս օգտագործել ավելի պարզ ալգորիթմներ և օպտիմալացումներ այնպիսի դեպքերում, ինչպիսիք են maximum matching (առավելագույն matching) և գրաֆի ներկման (graph coloring) խնդիրները:

Ձեզ խնդրում են գրել ծրագիր, որը ստանալով ոչ ուղղորդված գրաֆ v գագաթներով և e կողերով, պետք է ստուգի, թե արդյոք այն երկմասյա է:

Մուտք

Մուտքի առաջին տողում տրված են երկու ամբողջ թվեր v (1 ≤ v ≤ 100000) և e (1 ≤ e ≤ 100000):

Հաջորդ e տողերից յուրաքանչյուրում տրվում է երկու ամբողջ թիվ v1, v2 (1 ≤ v1, v2 ≤ v), որոնք ցույց են տալիս, որ գագաթ v1-ը միացված է գագաթ v2-ին, և հակառակը:

Ելք

Ծրագիրը պետք է տպի Yes, եթե տրված գրաֆը երկմասյա է, հակառակ դեպքում — No:

Օրինակներ

Input

Output

2 1 2 1

Yes

3 2 2 1 1 3

Yes

3 3 1 2 1 3 2 3

No

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue