#include<fstream>
#include<algorithm>
using namespace std;
typedef struct lol {
int x,y,z;
}troll;
unsigned int i,n,m,a[10005];
bool u;
troll q[100005];
inline unsigned int cmmdc(unsigned int a,unsigned int b) {
if(!b) return a;
return cmmdc(b,a%b);
}
bool OK(int i) { return cmmdc(a[q[i].x],a[q[i].y])==q[i].z; }
int main()
{
ifstream cin("oz.in");
ofstream cout("oz.out");
cin>>n>>m;
for(i=1;i<=n;++i) a[i]=1;
for(i=1;i<=m;++i)
{
cin>>q[i].x>>q[i].y>>q[i].z;
a[q[i].x]=(q[i].z*a[q[i].x])/cmmdc(a[q[i].x],q[i].z);
a[q[i].y]=(q[i].z*a[q[i].y])/cmmdc(a[q[i].y],q[i].z);
}
for(i=1;i<=m && !u;++i)
if(!OK(i)) u=1;
if(!u) for(i=1;i<=n;++i) cout<<a[i]<<' ';
else cout<<"-1\n";
return 0;
}