1 #include<iostream>
2 #include<cstdio>
3 #include<cmath>
4 #include<cstring>
5 #include<string>
6 #include<algorithm>
7 #include<queue>
8 #include<vector>
9
10 using namespace std;
11 typedef long long ll;
12 const int maxn=3002;
13 int fa[maxn];
14 int sum[maxn];
15 int n,m;
16 void init()
17 {
18 for(int i=1;i<=n;i++)
19 {
20 fa[i]=i;
21 }
22 }
23
24 int find(int x)
25 {
26 return x==fa[x]?x:fa[x]=find(fa[x]);
27 }
28 int main()
29 {
30 while(~scanf("%d%d",&n,&m))
31 {
32 init();
33 int u,v,w;
34 memset(sum,0,sizeof(sum));
35 int cnt=n-1;
36 while(m--)
37 {
38 scanf("%d%d%d",&u,&v,&w);
39 int fu=find(u);
40 int fv=find(v);
41 if(fu!=fv)
42 {
43 fa[fu]=fv;
44 cnt--;
45 }
46 }
47 if(cnt==0)
48 {
49 puts("yes");
50 }
51 else
52 {
53 puts("no");
54 }
55 }
56 return 0;
57 }