Verificare se un grafo è bilanciato

Un grafo diretto si definisce bilanciato se, per ogni vertice, il numero di archi entranti è uguale al numero di archi uscenti. Dato un grafo con v vertici e e archi, il compito è determinare se questo grafo sia bilanciato.

Input

La prima riga dell'input contiene due interi v (1 ≤ v ≤ 100 000) ed e (1 ≤ e ≤ 100 000).
Le successive e righe contengono coppie di interi v1, v2 (1 ≤ v1, v2 ≤ v) che indicano che il vertice v1 è connesso al vertice v2 e viceversa.

Output

Il programma deve stampare Yes se il grafo è bilanciato e No altrimenti.

Esempi

Input
Output
3 2 1 2 2 3
No
3 3 1 2 2 3 3 1
Yes

Spiegazione

Esempio 1: Il vertice 1 non ha archi entranti ma ha 1 arco uscente ⇒ il grafo non è bilanciato.
Esempio 1: Il vertice 1 non ha archi entranti ma ha 1 arco uscente ⇒ il grafo non è bilanciato.
Esempio 2: Tutti i vertici hanno 1 arco entrante e 1 uscente ⇒ il grafo è bilanciato.
Esempio 2: Tutti i vertici hanno 1 arco entrante e 1 uscente ⇒ il grafo è bilanciato.
 

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