#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
using namespace std;
#define INF 1000000000
typedef long long int lli;
typedef pair<int,int> P;

const int MAX_V=100;
int cost[MAX_V][MAX_V];
int mincost[MAX_V];
bool used[MAX_V];

int prim(int V){
    for(int i=0; i<V; ++i){
        mincost[i]=INF;
        used[i]=false;
    }
    mincost[0]=0;
    int res=0;

    while(true){
        int v=-1;
        for(int u=0; u<V; ++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<V; ++u){
            mincost[u]=min(mincost[u],cost[v][u]);
        }
    }
    return res;
}

int main(){
    int n,m;
    while(cin>>n>>m){
        if(n==0&&m==0) break;
        for(int i=0;i<n;++i)for(int j=0;j<n;++j) cost[i][j]=INF;
        for(int i=0; i<m; ++i){
            int a,b,c;
            cin >> a >> b >> c;
            cost[a][b]=cost[b][a]=c;
        }
        cout << prim(n) << "\n";
    }
    return 0;
}