There are $n$ football teams in the world. 

The Main Football Organization (MFO) wants to host at most $m$ games. MFO wants the $i$-th game to be played between the teams $a_i$ and $b_i$ in one of the $k$ stadiums. 

Let $s_{ij}$ be the numbers of games the $i$-th team played in the $j$-th stadium. MFO does not want a team to have much more games in one stadium than in the others. Therefore, for each team $i$, the absolute difference between the maximum and minimum among $s_{i1}, s_{i2}, \ldots, s_{ik}$ should not exceed $2$.

Each team has $w_i$ — the amount of money MFO will earn for each game of the $i$-th team. If the $i$-th team plays $l$ games, MFO will earn $w_i \cdot l$.

MFO needs to find what games in what stadiums they need to host in order to earn as much money as possible, not violating the rule they set.

However, this problem is too complicated for MFO. Therefore, they are asking you to help them.


-----Input-----

The first line contains three integers $n$, $m$, $k$ ($3 \leq n \leq 100$, $0 \leq m \leq 1\,000$, $1 \leq k \leq 1\,000$) — the number of teams, the number of games, and the number of stadiums.

The second line contains $n$ integers $w_1, w_2, \ldots, w_n$ ($1 \leq w_i \leq 1\,000$) — the amount of money MFO will earn for each game of the $i$-th game.

Each of the following $m$ lines contains two integers $a_i$ and $b_i$ ($1 \leq a_i, b_i \leq n$, $a_i \neq b_i$) — the teams that can play the $i$-th game. It is guaranteed that each pair of teams can play at most one game.


-----Output-----

For each game in the same order, print $t_i$ ($1 \leq t_i \leq k$) — the number of the stadium, in which $a_i$ and $b_i$ will play the game. If the $i$-th game should not be played, $t_i$ should be equal to $0$.

If there are multiple answers, print any.


-----Example-----
Input
7 11 3
4 7 8 10 10 9 3
6 2
6 1
7 6
4 3
4 6
3 1
5 3
7 5
7 3
4 2
1 4

Output
3
2
1
1
3
1
2
1
2
3
2



-----Note-----

One of possible solutions to the example is shown below: [Image]

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = 'import random\nimport math\n\ndef set_color(game, color):\n    color_count[game[0]][game[2]] -= 1\n    color_count[game[1]][game[2]] -= 1\n    game[2] = color\n    color_count[game[0]][game[2]] += 1\n    color_count[game[1]][game[2]] += 1\n\ndef fix(node):\n    minimum = math.inf\n    maximum = 0\n\n    for i in range(k):\n        minimum = min(minimum, color_count[node][i])\n        maximum = max(maximum, color_count[node][i])\n\n    if maximum - minimum <= 2:\n        return False\n\n    rand = 0\n    for game in games:\n        if (game[0] == node or game[1] == node) and color_count[node][game[2]] == maximum:\n            rand = r(1,k)\n            set_color(game, rand % k)\n            return True\n\n    return False\n\nn, m, k = list(map(int,input().split()))\ngames = [[0 for _ in range(4)] for _ in range(m)]\ncolor_count = [[0 for _ in range(k)] for _ in range(n)]\nanswers = [0 for _ in range(m)]\n_ = list(map(int,input().split()))\n\ncolor = 0\nr = lambda x,y : random.randint(x,y)\nfor i in range(m):\n    a, b = list(map(int,input().split()))\n    color = r(1,k) % k\n    games[i] = [a-1,b-1,color,i]\n    color_count[games[i][0]][color] += 1\n    color_count[games[i][1]][color] += 1\n\nbad = True\n\nwhile bad:\n    random.shuffle(games)\n    bad = False\n\n    for i in range(n):\n        while(fix(i)):\n            bad = True\n\nfor game in games:\n    answers[game[3]] = game[2] + 1\n\nfor i in range(m):\n    print(answers[i])\n        \n\n    \n'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 13963