There are n kangaroos with pockets. Each kangaroo has a size (integer number). A kangaroo can go into another kangaroo's pocket if and only if the size of kangaroo who hold the kangaroo is at least twice as large as the size of kangaroo who is held.

Each kangaroo can hold at most one kangaroo, and the kangaroo who is held by another kangaroo cannot hold any kangaroos.

The kangaroo who is held by another kangaroo cannot be visible from outside. Please, find a plan of holding kangaroos with the minimal number of kangaroos who is visible.

Input

The first line contains a single integer — n (1 ≤ n ≤ 5·105). Each of the next n lines contains an integer si — the size of the i-th kangaroo (1 ≤ si ≤ 105).

Output

Output a single integer — the optimal number of visible kangaroos.

Examples

Input

8
2
5
7
6
9
8
4
2


Output

5


Input

8
9
1
6
2
6
5
8
3


Output

5
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
 
 
 
 
public class Main {

    static int ar[] = new int[500006];
    
    public static void main(String[] args) {
        Input.read();
        int N = Input.getInt();
        for( int i = 0; i < N; i++ ){
            Input.read();
            ar[i] = Input.getInt();
        }
        Arrays.sort(ar, 0, N);
        //for( int i = 0; i < N; i++ ) System.out.println( i + " num : " + ar[i]);
        int r = N-1;
        int l = N/2;
        if( N%2 == 0 ) l--;
        int invis = 0;
        while( l >= 0 ){
            if( ar[r] == -1 ){
                r--;
            }
            else if( ar[l]*2 <= ar[r] ){
                ar[l] = -1;
                ar[r] = -1;
                l--; r--; invis++;
            }
            else l--;
        }
        System.out.println( N-invis );
        
        
    }
    
    
    
    //input class
    static class Input{
        //input
        private static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        private static StringTokenizer token;
        public static void read(){
            try {
                token = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
            }
        }
        public static int getInt(){
            return Integer.parseInt( token.nextToken() );
        }
        public static long getLong(){
            return Long.parseLong( token.nextToken() );
        }
        public static String getStr(){
            return token.nextToken();
        
        }
    }
        
}
/*

100
154
60
97
638
139
150
570
579
601
647
804
237
245
549
288
347
778
282
916
441
974
145
957
886
655
702
930
618
132
520
972
48
94
54
682
433
896
134
845
636
242
842
125
141
240
130
409
666
948
938
604
110
474
484
364
40
807
271
438
288
201
814
754
589
341
576
146
952
819
923
222
535
336
83
314
911
303
911
384
601
249
330
735
271
142
204
405
783
775
449
590
139
109
276
45
205
454
836
82
841

*/