#include<iostream>
#include<queue>
#include<vector>

using namespace std;

class Load{
	public:
	int n,m,o,p;
	load(){p=0;}
	load(int a,int b){n=a;m=b;p=0;}
};

int n,m;
Load load[100];

int prim(){
	vector<int> visit;
	visit.push_back(0);
	int cont=0;
	
	while(1){
		if(visit.size()==n){
			break;
		}
		int maxi=1000000000;
		int maxo=0;
		int maxa=0;
		for(int i=0;i<m;i++){
			for(int j=0;j<visit.size();j++){
				if(load[i].n==visit[j]&&load[i].p==0){
					if(maxi>load[i].o){
						load[i].p=1;
						maxi=load[i].o;
						maxo=load[i].m;
						maxa=i;
					}
				}
				if(load[i].m==visit[j]&&load[i].p==0){
					if(maxi>load[i].o){
						load[i].p=1;
						maxi=load[i].o;
						maxo=load[i].n;
						maxa=i;
					}
				}
			}
		}
		//printf("%d %d %d\n",maxa,maxo,maxi);
		cont+=maxi;
		visit.push_back(maxo);
	}
	return cont;
}

int main(){
	while(1){
	cin>>n>>m;
		if(!n){
			break;
		}
		for(int i=0;i<m;i++){
			int a,b,c;
			cin>>a>>b>>c;
			load[i].n=a;
			load[i].m=b;
			load[i].o=c;
			load[i].p=0;
		}
		printf("%d\n",prim());
	}
	
}