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
def main():
    line = input().split()
    h, w = int(line[0]), int(line[1])
    d = int(input())
    sizes = list(reversed([int(d) for d in input().split()]))

    if h % sizes[-1] != 0 or w % sizes[-1] != 0:
        print(-1)
        return

    def count(h, w):
        # print(f"{h=}, {w=}")
        for size in sizes:
            if h < size or w < size:
                continue
            # h >= size and w >= size
            a = h // size
            b = w // size

            reminder_a = h % size
            reminder_b = w % size

            res = a * b

            if reminder_a > 0:
                res += count(size * b, reminder_a)

            if reminder_b > 0:
                res += count(reminder_b, h)

            return res

    print(count(h, w))


if __name__ == "__main__":
    main()