#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
#include <utility>
using namespace std;

// ????????????????????£?¨?
int prim(vector<vector<pair<int, int> > > adjlist, int v);

// ?????????
int main(void){
  while(true){
    // ???????????°??¨???????????°???????????????
    int n, m;
    cin >> n;
    if(n == 0){ break; }
    cin >> m;

    // ???????????±????????????????????£??\??????????????????
    vector<vector<pair<int, int> > > adjlist(n);
    for(int i = 0; i < m; i++){
      int a, b, d;
      scanf("%d,%d,%d", &a, &b, &d);
      adjlist[a].push_back(make_pair(d, b));
      adjlist[b].push_back(make_pair(d, a));
    }
  
    // ????°???¨?????¨????????????????±??????????????????????
    int length = prim(adjlist, n);
    cout << length / 100 - n + 1 << endl;
  }

  return 0;
}

// ????????????
// ?????°: ??£??\?????????(first: ???????????????, second: ????????????), ????????°
// ?????????: ??¨????????????
int prim(vector<vector<pair<int, int> > > adjlist, int v){
  priority_queue<pair<int, int> > mincost;  // ?????§???????????????????????¨?????§???????°??????????
  vector<bool> used(v, false);  // ??????i?????¨????????????????????????
  int length = 0;  // ??¨????????????

  // ???????????????
  mincost.push(make_pair(0, 0));
  while(!mincost.empty()){
    // ????£?????????????????°?????????????????????????
    int newmember = mincost.top().second;
    int newcost = -mincost.top().first;
    mincost.pop();
    if(used[newmember]){ continue; }

    // ???newmember?????¨?????????
    used[newmember] = true;
    length += newcost;

    // ???newmember????????\?¶???????????????????????????????????????? 
    for(int i = 0; i < adjlist[newmember].size(); i++){
      // ????????¨??????????????????????????????queue?????????
      if(!used[adjlist[newmember][i].second]){
        mincost.push(make_pair(-adjlist[newmember][i].first, adjlist[newmember][i].second));
      }
    }
  }
  
  return length;
}