#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5;
struct edge{
int a,b,w;
}e[N];
bool cmp(edge a,edge b)
{
return a.w<b.w;
}
int p[N];
int find(int x)
{
if(p[x]!=x)
p[x]=find(p[x]);
return p[x];
}
int main()
{
int n,m;
while(cin>>n>>m&&n)
{
for(int i=1;i<=n;i++)
p[i]=i;
for(int i=0;i<m;i++)
{
int a,b,w;
cin>>a>>b>>w;
e[i]={a,b,w};
}
sort(e,e+m,cmp);
int sum=0;
for(int i=0;i<m;i++)
{
int a=find(e[i].a);
int b=find(e[i].b);
int w=e[i].w;
if(a!=b)
{
p[a]=b;
sum+=w;
}
}
cout<<sum<<endl;
}
}