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


import java.io.*;
import java.util.*;
//import java.math.BigInteger;




public class Main {
    
  
    public static void main(String args[]) {
        try {
        
        //BufferedReader br = new BufferedReader(new FileReader(new File("input.txt")));
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //
        String s[] = br.readLine().split(" ");
        int n = Integer.parseInt(s[0]);
        int k = Integer.parseInt(s[1]);
        if(k==1){
            System.out.println(n);return;
        }
        String s1[] = br.readLine().split(" ");
        HashSet<Double> set = new HashSet();
        HashSet<Double> set1 = new HashSet();
        for(int i = 0;i<n;i++){
            set.add(Double.parseDouble(s1[i]));
        }
        int setCount = 0;
        for(Iterator I = set.iterator();I.hasNext();){
            double a = (Double)I.next();
            if(set1.contains(a)){
                continue;
            }
            set1.add(a);
            int count = 1;
            double temp = a;
            //System.out.println(a);
            while(set.contains(temp/k)){
                set1.add(temp/k);
                count++;
                temp = temp/k;
            }
            temp = a;
            while(set.contains(temp*k)){
                set1.add(temp*k);
                count++;
                temp = temp*k;
            }
            //System.out.println(set1+" "+count);
            
            if(count%2==0){
                setCount += (count/2);
            }
            else
            setCount += (count/2)+1;
        }
        
        System.out.println(setCount);
        
        } catch (IOException | NumberFormatException e) {
        }
    }
   }


