A *k*-multiple free set is a set of integers where there is no pair of integers where one is equal to another integer multiplied by *k*. That is, there are no two integers *x* and *y* (*x* &lt; *y*) from the set, such that *y* = *x*·*k*.

You're given a set of *n* distinct positive integers. Your task is to find the size of it's largest *k*-multiple free subset.
The first line of the input contains two integers *n* and *k* (1 ≤ *n* ≤ 10<sup class="upper-index">5</sup>, 1 ≤ *k* ≤ 10<sup class="upper-index">9</sup>). The next line contains a list of *n* distinct positive integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).

All the numbers in the lines are separated by single spaces.
nn = input()
nn = nn.split()
n = (nn[0])
k = int(nn[1])
numbers = input()
linum = numbers.split()
lnum = []
for i in linum:
    lnum.append(int(i))

lonum = sorted(lnum,key = lambda i:i)

def resolver(lnum,k,lista):
    for i in lista:
        for ii in lista:
                if ii == (i*k):
                    return False
    if len(lnum) == 0:
        return
    a = len(lista)
    if len(sol) == 0:
        sol.append(a)
    else:
        if a > sol[0]:
            sol[0] = a
    for i in range(len(lnum)):
        lista.append(lnum[i])
        resolver(lnum[:i]+lnum[i+1:],k,lista)
        lista.pop()

sol = []
resolver(lonum,k,[])
print(sol[0])
