#include<fstream>
using namespace std;
const int NMAX = 10000;
long long v[NMAX + 10],n,m;
long long cmmdc(long long a,long long b)
{
if(!b)
return a;
return cmmdc(b,a%b);
}
void solve()
{
ifstream in("oz.in");
in>>n>>m;
long long a,b,c;
bool ok = true;
for(int i = 1 ;i <= n ; i++)
v[i] = 1;
for(int i = 1 ; i <= m; i++)
{
in>>a>>b>>c;
v[a] = v[a]*c/cmmdc(v[a],c);
v[b] = v[b]*c/cmmdc(v[b],c);
}
in.close();
ifstream in2("oz.in");
in2>>n>>m;
for(int i = 1 ; i <= m && ok; i++){
in2>>a>>b>>c;
if(cmmdc(v[a],v[b]) != c)
ok = false;
}
ofstream out("oz.out");
if(ok)
for(int i =1 ; i <= n ; i++)
out<<v[i]<<" ";
else
out<<"-1\n";
out.close();
}
int main()
{
solve();
return 0;
}