#include <iostream>
#include <algorithm>

using namespace std;

const int INF = 1000000000;

int n, m;
int cost[100][100];
bool used[100];
int mincost[100];

int prim(){
  for(int i=0;i<n;++i){
    mincost[i] = INF;
    used[i] = false;
  }
  mincost[0] = 0;
  int res = 0;
  while(1){
    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]);
    }
  }
  return res;
}

main(){
  while(cin >> n >> m && (n || m)){
    fill(cost[0], cost[100], 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() << endl;
  }
  return 0;
}