#include<iostream>
#include<algorithm>
using namespace std;
typedef struct{
	int u,v,co;
}wa;
bool com(const wa& a,const wa& b){
	return a.co<b.co;
}
wa way[1000];
int pa[1000];
int find(int t){
	if(pa[t]==t)
	return t;
	else return find(pa[t]);
}
void uni(int s,int t){
	s=find(s);
	t=find(t);
	pa[s]=t;
}
int same(int x,int y){
	return find(x)==find(y);
}
int main(){
	int n,m,sum;
	while(cin>>n>>m,n||m){
		sum=0;
		for(int i=0;i<m;i++)
			cin>>way[i].v>>way[i].u>>way[i].co;
		for(int i=0;i<n;i++)
			pa[i]=i;
		sort(way,way+m,com);
		for(int i=0;i<m;i++){
			if(!same(way[i].u,way[i].v)){
				uni(way[i].u,way[i].v);
				sum+=way[i].co;
			}
		}
		cout<<sum<<endl;
	}
	return 0;
}