#include <iostream>
#include <algorithm>
#define MAX_V 100
#define INF 1e9
using namespace std;

int cost[MAX_V][MAX_V];
int mincost[MAX_V];//集合Xからの辺の最小コスト
bool used[MAX_V];//頂点iがXに含まれてるか
int V;

int prim(){
  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; //頂点vをXに追加
    res += mincost[v]; //円のコストを加える
    for(int u=0;u<V;u++) mincost[u] = min(mincost[u],cost[v][u]);
  }
  return res;
}


int main(){
  int E;
  while(cin >> V){
    if(V==0) break;
    
    cin >> E;
    for(int i=0;i<E;i++){
      for(int j=0;j<E;j++){
        cost[i][j] = cost[j][i] = (i==j ? 0 : INF);
      }
    }

    int a,b,dist;
    char camma;
    for(int i=0;i<E;i++){
      cin >> a >> camma >> b >> camma >> dist;
      a; b;
      cost[a][b] = cost[b][a] = dist;
    }
    
    int sum_of_costs = prim();
    int lanterns = sum_of_costs/100 - (V - 1); 
    //n00mを100mで分割すると分割点はn-1個
    cout << lanterns << endl;
  }
  return 0;
}