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 < 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.

Input

The first line of the input contains two integers n and k (1 ≤ n ≤ 105, 1 ≤ k ≤ 109). The next line contains a list of n distinct positive integers a1, a2, ..., an (1 ≤ ai ≤ 109).

All the numbers in the lines are separated by single spaces.

Output

On the only line of the output print the size of the largest k-multiple free subset of {a1, a2, ..., an}.

Examples

Input

6 2
2 3 6 5 4 10


Output

3

Note

In the sample input one of the possible maximum 2-multiple free subsets is {4, 5, 6}.
from sys import stdin
from fractions import Fraction

def read_int():
    return [int(x) for x in stdin.readline().split()][0]
def read_ints():
    return [int(x) for x in stdin.readline().split()]
def char_list():
    return [c for c in stdin.readline()][:-1]
def line():
    return stdin.readline()

def print_yes(arg):
    if arg:
        print "YES"
    else:
        print "NO"
def list_to_dict(lst):
    dct = {}
    for elt in lst:
        if elt not in dct:
            dct[elt] = 0
        dct[elt] += 1
    return dct
def memo(fn):
    table = {}
    def memo_fn(*args):
        if args not in table:
            table[args] = fn(*args)
        return table[args]
    return memo_fn

_, k = read_ints()
nums = read_ints()
used = set()
for i in sorted(nums):
    if i % k == 0 and i / k in used: continue
    used.add(i)
print len(used)
