Tavas is a cheerleader in the new sports competition named "Pashmaks".

<image>

This competition consists of two part: swimming and then running. People will immediately start running R meters after they finished swimming exactly S meters. A winner is a such person that nobody else finishes running before him/her (there may be more than one winner).

Before the match starts, Tavas knows that there are n competitors registered for the match. Also, he knows that i-th person's swimming speed is si meters per second and his/her running speed is ri meters per second. Unfortunately, he doesn't know the values of R and S, but he knows that they are real numbers greater than 0.

As a cheerleader, Tavas wants to know who to cheer up. So, he wants to know all people that might win. We consider a competitor might win if and only if there are some values of R and S such that with these values, (s)he will be a winner.

Tavas isn't really familiar with programming, so he asked you to help him.

Input

The first line of input contains a single integer n (1 ≤ n ≤ 2 × 105).

The next n lines contain the details of competitors. i-th line contains two integers si and ri (1 ≤ si, ri ≤ 104).

Output

In the first and the only line of output, print a sequence of numbers of possible winners in increasing order.

Examples

Input

3
1 3
2 2
3 1


Output

1 2 3 


Input

3
1 2
1 1
2 1


Output

1 3 
5
10 50
10 50
10 50
10 50
10 50
 2
10000 10000
10000 10000
 3
10000 10000
10000 10000
10000 10000
 3
1000 3000
1500 1500
3000 1000
 43
75 16
70 7
75 16
54 2
70 7
54 2
70 7
54 2
70 7
54 2
54 2
70 7
70 7
54 2
70 7
75 16
70 7
54 2
54 2
54 2
54 2
54 2
54 2
75 16
70 7
70 7
54 2
70 7
75 16
54 2
75 16
75 16
54 2
54 2
70 7
70 7
75 16
70 7
70 7
70 7
75 16
75 16
54 2
 1
1 1
 2
1 1
1 1
 44
78 52
75 16
70 7
75 16
54 2
70 7
54 2
70 7
54 2
70 7
54 2
54 2
70 7
70 7
54 2
70 7
75 16
70 7
54 2
54 2
54 2
54 2
54 2
54 2
75 16
70 7
70 7
54 2
70 7
75 16
54 2
75 16
75 16
54 2
54 2
70 7
70 7
75 16
70 7
70 7
70 7
75 16
75 16
54 2
 3
1000 3000
1499 1499
3000 1000
 5
50 50
49 50
50 49
49 49
50 1
 18
82 38
33 69
33 69
33 69
33 69
33 69
82 38
33 69
33 69
33 69
82 38
33 69
33 69
82 38
82 38
33 69
33 69
33 69
 1
10000 9999
 3
1000 3000
1501 1501
3000 1000
 2
1 2
2 1

1 2 3 4 5
 1 2
 1 2 3
 1 2 3
 1 3 16 24 29 31 32 37 41 42
 1
 1 2
 1
 1 3
 1
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
 1
 1 2 3
 1 2 

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
    public static void main(String []args)
    {
        new Main();
    }

    class Point
    {
        int i;
        double x, y;
        Point(){}
        Point(int _i, double _x, double _y)
        {
            i = _i;
            x = _x;
            y = _y;
        }
    }

    double s(Point a, Point b, Point c)
    {
        return (a.x+b.x)*(a.y-b.y) + (b.x+c.x)*(b.y-c.y) + (c.x+a.x)*(c.y-a.y);
    }

    double dist(Point a, Point b)
    {
        return (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y);
    }

    Point[] a, ans;
    int[] res;
    int ans_sz = 0, res_sz = 0;
    Point p, p0;

    boolean lower(Point a, Point b)
    {
        if (a.x != b.x) return a.x < b.x;
        return a.y < b.y;
    }

    Main()
    {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        a = new Point[n+1];
        ans = new Point[n+1];
        res = new int[n+1];
        for (int i = 0; i < n; i++)
        {
            int s = sc.nextInt();
            int r = sc.nextInt();
            a[i] = new Point(i, 1.0/s, 1.0/r);
        }
        p = a[0];
        for (int i = 0; i < n; i++)
        {
            if (lower(a[i], p)) p = a[i];
        }
        Arrays.sort(a, 0, n, (a1, b) -> {
            double ts = s(p, a1, b);
            if (ts < 0) return -1;
            if (ts > 0) return 1;
            double ta = dist(p, a1), tb = dist(p, b);
            if (ta < tb) return 1;
            if (ta > tb) return -1;
            return 0;
        });
        a[n] = a[0];
        for (int i = 0; i < n+1; i++)
        {
            while (ans_sz >= 2 && s(ans[ans_sz-2], ans[ans_sz-1], a[i]) > 0) ans_sz--;
            ans[ans_sz++] = a[i];
        }
        int miny = 0;
        for (int i = 0; i < ans_sz-1; i++)
        {
            if (ans[i].y < ans[miny].y) miny = i;
        }
        for (int i = 0; i <= miny; i++)
        {
            res[res_sz++] = ans[i].i;
        }
        Arrays.sort(res, 0, res_sz);
        for (int i = 0; i < res_sz; i++)
        {
            System.out.print(res[i]+1);
            System.out.print(" ");
        }
        sc.close();
    }
}