1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
dx = [0, -1, 1]
dy = [1, 0, 0]


class FindUnion:
    def __init__(self):
        self.parents = {}
        self.ranks = {}
        self.roots = 0

    def addAdress(self, address: int):
        if address not in self.parents:
            self.parents[address] = address
            self.ranks[address] = 1
            self.roots += 1

    def find(self, address: int) -> int:
        if self.parents[address] != address:
            self.parents[address] = self.find(self.parents[address])

        return self.parents[address]

    def union(self, ad1: int, ad2: int) -> None:
        root1 = self.find(ad1)
        root2 = self.find(ad2)

        if self.ranks[root1] > self.ranks[root2]:
            self.parents[root2] = root1
            self.roots -= 1
        elif self.ranks[root1] < self.ranks[root2]:
            self.parents[root1] = root2
            self.roots -= 1
        elif root1 != root2:
            self.parents[root2] = root1
            self.ranks[root1] += 1
            self.roots -= 1


n, k = [int(x) for x in input().strip().split(" ")]

grid = [[0] * n, [0] * n]

grid_map = {}

i = 0
for x in input().strip().split(" "):
    grid[0][i] = int(x)
    grid_map[int(x)] = (0, i)
    i += 1

i = 0
for x in input().strip().split(" "):
    grid[1][i] = int(x)
    grid_map[int(x)] = (1, i)
    i += 1




res = [0] * k



for i in range(2 * n):
    fu = FindUnion()

    for j in range(i, 2 * n):
        l = i + 1
        r = j + 1

        fu.addAdress(r)

        y, x = grid_map[r]
        for di, dj in zip(dx, dy):
            new_x, new_y = (x + di) % n, (y + dj) % 2
            new_index = grid[new_y][new_x]
            if l <= new_index <= r:
                fu.union(r, new_index)

        interest = fu.roots
        if interest <= k:
            res[interest - 1] += 1


for x in res:
    print(x, end=' ')
print()