#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<math.h>
#include<algorithm>
#include<vector>
#include<queue>
#include<map>
#include<string>
#include<cmath>
#include<set>
#include<stack>

using namespace std;
typedef unsigned long long ll;

int main(){
    int n,m;
    while(cin>>n>>m,n){
        int city[102][102];
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                city[i][j]=INT_MAX;
            }
            city[i][i]=0;
        }
        for(int i=0;i<m;i++){
            int a,b,c;
            cin>>a>>b>>c;
            city[a][b]=c;
            city[b][a]=c;
        }
        vector<int>que;
        vector<int>vec;
        vec.push_back(0);
        for(int i=1;i<n;i++){
            que.push_back(i);
        }
        int ret=0;
        while(!que.empty()){
            int mi=INT_MAX;
            int cur=-1,in;
            for(int j=0;j<que.size();j++){
                for(int i=0;i<vec.size();i++){
                    if(city[vec[i]][que[j]]<mi){
                        mi=city[vec[i]][que[j]];
                        cur=que[j];
                        in=j;
                    }
                }
            }
            ret+=mi;
            que.erase(que.begin()+in);
            vec.push_back(cur);
        }
        cout<<ret<<endl;
    }
    
    return 0;
}