text: In this case, you're additionally asked to produce any convention allowing the party to win regardless of the opponent's actions.The second line should contain n non-negative integers h'_1, h'_2, ..., h'_n (0 ≤ h'_i ≤ 2 ⋅ 10^{18}) describing the amount of taxes paid in consecutive cities after the convention.If there are multiple answers, output any.We guarantee that if the party has any winning move, there exists a move after which no city has to pay more than 2 ⋅ 10^{18} bourles.If the party cannot assure their victory, output LOSE in the first and only line of the output.Examples Input 4 2 2 1 1 5 1 2 3 4 Output WIN 1 5 1 5 Input 4 2 1 5 1 5 1 2 3 4 Output LOSE Input 3 3 314 159 265 1 2 1 3 3 2 Output WIN 0 0 0 Input 6 4 2 2 5 5 6 6 1 3 2 4 3 5 4 6 Output LOSE Note In the first example, Wrong Answer Party should hold the convention in the city 1.The party will decrease the taxes in this city to 1 bourle.As the city 2 is directly reachable from 1, we can arbitrarily modify the taxes in this city.The party should change the tax to 5 bourles.It can be easily proved that Time Limit Exceeded cannot win the election after this move if Wrong Answer Party plays optimally.The second example test presents the situation we created after a single move in the previous test; as it's Wrong Answer Party's move now, the party cannot win.In the third test, we should hold the convention in the first city.This allows us to change the taxes in any city to any desired value; we can for instance decide to set all the taxes to zero, which allows the Wrong Answer Party to win the election immediately.# Solution #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 100; int n, m, h[N], lev[N], Xor[N], cnt[N], deg[N]; vector<int> nxt[N], rnxt[N], vec[N]; set<int> s; queue<int> q; int main() { cin >> n >> m; for (int i = 1; i <= n; ++i) cin >> h[i]; for (int i = 1; i <= m; ++i) { int x, y; cin >> x >> y; rnxt[y].push_back(x); nxt[x].