#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
long long a[6001],b[2001][2001],c[2001],dis[2001],e,f,g,h,j,k,head,tail,way[20001],vis[2001];
int main()
{cin>>e>>f;
for(int yui=1;yui<=e;yui++)
{dis[yui]=1e7;
for(int opi=1;opi<=e;opi++)
b[yui][opi]=1e8;
}
for(int yui=1;yui<=f;yui++)
{
cin>>h>>j>>k;
b[h][j]=min(k,b[h][j]);
}
dis[1]=0;
tail=2;
head=1;
c[1]=1;
way[1]=1;
vis[1]=1;
while(head<tail)
{
for(int yui=1;yui<=e;yui++)
{
if(dis[c[head]]+b[c[head]][yui]<dis[yui])
{
dis[yui]=dis[c[head]]+b[c[head]][yui];
way[yui]=way[c[head]];
if(vis[yui]==0)
{
c[tail]=yui;
tail++;
vis[yui]=1;
}
}
else
if(dis[c[head]]+b[c[head]][yui]==dis[yui])
{
way[yui]=way[yui]+way[c[head]];
}
}
vis[c[head]]=0;
head++;
}
if(dis[e]==1e7)
cout<<"No answer";
else
cout<<dis[e]<<" "<<way[e];
}