#include #include #include #include #include #include #include using namespace std; int fin,X,Y,x,y,val,i,j,n,m,s[100009],stiu[2200009]; vector < pair < int , bool > > muc[2200009]; void getxy(int cod,int &x,int &y) { x=cod/21; y=cod%21; } int cod(int i,int j) { return i*21+j; } void fix(int cod,int val) { if(val==1) s[cod/21]|=1<<(cod%21); } void dfs(int nod) { int x,y,bit; getxy(nod,x,y); bit=((s[x]&(1<0); stiu[nod]=1; vector < pair < int , bool > > :: iterator it; for(it=muc[nod].begin();it!=muc[nod].end();it++) if(stiu[it->first]==0) { fix(it->first,bit^(it->second)); dfs(it->first); } } int main() { //freopen("input","r",stdin); //freopen("output","w",stdout); scanf("%d%d",&n,&m); for(i=1;i<=m;i++) { scanf("%d%d%d",&x,&y,&val); for(j=0;j<=20;j++) { if(val&(1<