P15110 Silent End

题目背景

机房里有一些神在讨论代码部队。grg 发现自己太菜参与不进去,所以只能听他们高谈阔论。

题目描述

grg 听到了其中 $m$ 条评价。第 $i$ 条形式为 $(u_i,v_i,w_i)$,分别为评价者,被评价者以及预估的 rating。然而这些评价不一定准确。具体地,如果评价者的真实 rating 大于等于被评价者,他会低估被评价者导致 $w$ 比实际 rating 小 $1$,若小于被评价者,他会高估被评价者导致 $w$ 比实际 rating 大 $1$。 因为这群人关系很好,所以**每个人都至少被评价了一次**。 现在 grg 想要你构造一组这些人的 rating,需要满足所有评价。如果不存在,请报告。

输入格式

第一行两个正整数 $n,m$。 接下来 $m$ 行,每行三个非负整数 $u_i,v_i,w_i$,含义如上。

输出格式

若无解,请输出 `NO`。 否则输出 `YES`,再输出一行 $n$ 个整数,代表你构造的这些人的 rating,你需要保证构造的这些这些 rating 处于带符号 32 位整数的范围内,否则随机报错。

说明/提示

**本题采用捆绑测试。** $\texttt{Subtask 1(30pts)}:$ $n \leq 20$,$m \leq 100$。 $\texttt{Subtask 2(70pts)}:$ 无额外限制。 对于所有的数据,满足 $1\le n \leq 5 \cdot 10^5$,$n\le m \leq 10^6$,$0 \leq w_i \leq 10^9$。 **保证每个人都至少被评价了一次。**