水生成树
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
typedef pair<int,pii> piii;
int n,m;
int father[1000];
int GetFather(int x)
{
if (father[x]==x)
return x;
else
{
int t=GetFather(father[x]);
father[x]=t;
return t;
}
}
void Gao()
{
vector<piii>a;
for (int i=1;i<=n;i++)
father[i]=i;
for(int i=0;i<m;i++)
{
int x,y,w;
cin>>x>>y>>w;
a.push_back(make_pair(w,make_pair(x,y)));
}
if (n==1 ||n==0)
{
cout<<0<<endl;
return ;
}
int ans=0;
sort(a.begin(),a.end());
for (int i=0;i<m;i++)
{
int x1,x2;
x1=GetFather(a[i].second.first);
x2=GetFather(a[i].second.second);
if (x1!=x2)
father[x2]=x1,ans+=a[i].first;
}
cout<<ans<<endl;
}
int main()
{
//freopen("a.in","r",stdin);
while (cin>>n>>m &&n)
Gao();
return 0;
}