////////////////////////////////////////////////////////////
//最安全逃芝加哥路径
//用单源最短路径法
//在本题中的prev[]没有用到,这是用于构造最短路径的,本题不需要
#include<iostream>
#include<iomanip>
using namespace std;
#define MIN 0.0
double c[105][105];
int prev[105];
double dist[105];
void build(int m)
{
int i,a,b,cost;
for(i=1;i<=m;i++)
{
cin>>a>>b>>cost;
c[a][b]=c[b][a]=double(cost)/100;
}
}
void Dijk(int n,int v)
{
int i,j,k;
double tempmax;
for(i=1;i<=n;i++) //初始化
{
dist[i]=c[v][i];
if(dist[i]==MIN) prev[i]=0;
else prev[i]=v;
}
c[v][v]=1.0;
dist[v]=1.0;
for(i=1;i<n;i++)
{
tempmax=0.0;
for(k=1;k<=n;k++)
if(c[k][k]!=1.0 && tempmax<dist[k]) //找出最大的概率
{
tempmax=dist[k];
j=k;
}
c[j][j]=1.0;
for(k=1;k<=n;k++)
{
if(c[k][k]!=1.0 && c[j][k]!=MIN) //修改dist的值
if(dist[k]<dist[j]*c[j][k])
{
dist[k]=dist[j]*c[j][k];
prev[k]=j;
}
}
}
}
int main()
{
int i,j,n,m;
while(cin>>n && n!=0)
{
cin>>m;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
c[i][j]=MIN;
for(i=0;i<=n;i++)
c[i][i]=0;
build(m);
Dijk(n,1);
cout<<setiosflags(ios::fixed)<<setprecision(6)<<dist[n]*100<<" percent"<<endl;
}
return 0;
}