#include<bits/stdc++.h>
using namespace std;
#define r(i,n) for(int i=0;i<n;i++)
#define INF 1<<27
int n,cost[110][110],mincost[110];
bool used[110];
int prim(){
  r(i,n)mincost[i]=INF,used[i]=false;
  mincost[0]=0;
  int res=0;
  while(1){
    int v=-1;
    r(u,n)if(!used[u]&&(v==-1||mincost[u]<mincost[v]))v=u;
    if(v==-1)break;
    used[v]=1;
    res+=mincost[v];
    r(u,n)mincost[u]=min(mincost[u],cost[v][u]);
  }
return res;
}
int main(){
  int m,q,w,e;
  while(cin>>n>>m,n){
  r(i,n)r(j,n)cost[i][j]=INF;
  while(m--)cin>>q>>w>>e,cost[w][q]=cost[q][w]=e;
  cout<<prim()<<endl;
}
}