You are given an unweighted, undirected graph. Write a program to check if it's a tree topology.
-----Input-----
The first line of the input file contains two integers N and M --- number of nodes and number of edges in the graph (0 < N <= 10000, 0 <= M <= 20000). Next M lines contain M edges of that graph --- Each line contains a pair (u, v) means there is an edge between node u and node v (1 <= u,v <= N).
-----Output-----
Print YES if the given graph is a tree, otherwise print NO.
-----Example-----
Input:
3 2
1 2
2 3
Output:
YES
def main():
 try:
  [n, m] = input().split()
  m=int(m)
  n=int(n)
  p = [0]*(n+1)
  while m>0:
   [a,b] = input().split()
   a=int(a)
   b=int(b)
   p[a] = p[a]+1
   p[b] = p[b]+1
   if (p[a]>=3 or p[b] >= 3):
    print("NO")
    return 0
   m=m-1
  print("YES")
 except:
  return 0
 
main()

def main():
 try:
  [n, m] = input().split()
  m=int(m)
  n=int(n)
  p = [0]*(n+1)
  while m>0:
   [a,b] = input().split()
   a=int(a)
   b=int(b)
   p[a] = p[a]+1
   p[b] = p[b]+1
   if (p[a]>=3 or p[b] >= 3):
    print("NO")
    return 0
   m=m-1
  print("YES")
 except:
  return 0
 
main()
