#include <iostream>
using namespace std;

int cost[100][100];
int mincost[100];
bool used[100];
const int INF = 1000000;

void init()
{
	for(int i=0;i<100;i++){
		for(int j=0;j<100;j++){
			if(i==j)
				cost[i][j] = 0;
			else
				cost[i][j] = INF;
		}
	}
}

int main()
{
	int n,m;
	while(cin >> n >> m){
		if(n==0 && m==0)
			break;
		init();
		for(int i=0;i<m;i++){
			int a,b,c;
			cin >> a >> b >> c;
			cost[a][b] = c;
			cost[b][a] = c;
		}
		
		for(int i=0;i<n;++i){
			mincost[i] = INF;
			used[i] = false;
		}
		mincost[0] = 0;
		int res = 0;
		while(true){
			int v=-1;
			for(int u=0;u<n;u++){
				if(!used[u]&&(v==-1 || mincost[u] < mincost[v]))
					v = u;
			}
			if(v==-1)break;
			used[v] = true;
			res += mincost[v];
			for(int u=0;u<n;u++){
				mincost[u] = min(mincost[u], cost[v][u]);
			}
		}
		cout << res << endl;
	}
	return 0;
}