#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#include<map>
#include<functional>
#include<stack>
#include<list>
#include<set>
#include<deque>
#include<climits>
using namespace std;

int N,M;
int par[100],_rank[100];

struct Way{
	int A,B,D;
	Way(){}
	Way(int _A,int _B,int _D){
		A=_A; B=_B; D=_D;
	}
	bool operator<(const Way &a)const{
		return D<a.D;
	}
};

void Init(){
	for(int i=0;i<N;i++) par[i] = i;
}

int Find(int x){
	if(par[x]==x) return x;
	else return par[x] = Find(par[x]);
}

bool Unite(int x,int y){
	int a = Find(x),
		b = Find(y);
	if(a==b) return false;
	if(_rank[a]>_rank[b]){
		par[b] = par[a];
	}
	else{
		par[a] = par[b];
		if(_rank[a]==_rank[b]) _rank[b]++;
	}
	return true;
}

int main(){
	Way way[10000];
	while(cin>>N,N){
		cin>>M;
		for(int i=0;i<M;i++){
			scanf("%d,%d,%d",&way[i].A,&way[i].B,&way[i].D);
		}
		sort(way,way+M);
		int ans=0;
		Init();
		for(int i=0;i<M;i++){
			if(Unite(way[i].A,way[i].B)==true){
				ans += way[i].D/100-1;
			}
		}
		printf("%d\n",ans);
	}
	return 0;
}