#include <stdio.h>
int getShortLenght(int graph[100][100],int n)
{
  int sum=0;
  int set[100];
  for(int i=1;i<n;i++)
  {
    set[i]=0;
  }
  int low[100];
  set[1]=1;
  for(int i=1;i<n;i++)
  {
    if(i!=1)
    {
      low[i]=graph[1][i];
    }
  }
  for(int i=1;i<n;i++)
  {
    int min=0,minp=0;
    for(int j=1;j<n;j++)
    {
      if(min!=0)
      {
      if(min>low[j]&&set[j]==0)
      {
        min=low[j];
        minp=j;
      }
      }
      else if(min==0)
      {
        if(set[j]==0)
        {
          min=low[j];
          minp=j;
        }
      }
    }
    sum+=min;
    set[minp]=1;
    for(int i=1;i<n;i++)
    {
      if(set[i]==0&&low[i]>graph[minp][i])
      {
        low[i]=graph[minp][i];
      }
    }
  }
  printf("%d\n",sum);
  return 1;
}

int main()
{
  while(1)
  {
    int N=0;
    scanf("%d",&N);
    if(N==0)
    {
      break;
    }
    int graph[100][100];
    for(int i=0;i<N*(N-1)/2;i++)
    {
      int v1,v2;
      scanf("%d",&v1);
      scanf("%d",&v2);
      scanf("%d",&graph[v1][v2]);
      graph[v2][v1]=graph[v1][v2];
    }
    getShortLenght(graph,N+1);
  }
}
/**************************************************************
	Problem: 2188
	User: admin
	Language: C
	Result: Accepted
	Time:15 ms
	Memory:1144 kb
****************************************************************/