import java.util.*; public class f { static int[][] c; public static void main(String[] args) { //System.out.println(close(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY)); //Read input Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int p = scan.nextInt(); Random rand = new Random(); c = new int[n+1][2]; for (int i = 1; i <= n; i++) { c[i][0] = scan.nextInt(); c[i][1] = scan.nextInt(); } for (int i = 0; i < 150; i++) {//CHANGEMEeeee int c1 = rand.nextInt(n) + 1; int c2 = c1; while (c2 == c1) c2 = rand.nextInt(n) + 1; //System.out.println(c1); //System.out.println(c2); double slope = slope(c1, c2); double intercept = intercept(c1, c2); //System.out.println("desired" + slope); //System.out.println("desired" + intercept); int num = 2; for (int j = 1; j <= n; j++) { if (j == c1 || j == c2) continue; //System.out.println(slope(c1, j)); //System.out.println(intercept(c1, j)); if (close(slope(c1, j), slope)) if (close(intercept(c1, j), intercept)) num++; //System.out.println(num); //System.out.println(); } if (num / (double) n * 100 >= p) { System.out.println("possible"); return; } } System.out.println("impossible"); } public static double intercept(int c1, int c2) { return (((double) c[c1][1]) - c[c1][0] * slope(c1, c2)); } public static double slope(int c1, int c2) { return (((double)c[c1][1]) - c[c2][1]) / (c[c1][0] - c[c2][0]); } public static boolean close(double a, double b) { if (Double.isInfinite(a) && Double.isInfinite(b)) return true; if (Double.isNaN(a) && Double.isNaN(b)) return true; if (a == Double.POSITIVE_INFINITY || a == Double.POSITIVE_INFINITY) if (b == Double.NEGATIVE_INFINITY || b == Double.NEGATIVE_INFINITY) return true; if (a == Double.NaN && b == Double.NaN) return true; return Math.abs(a-b) < 1e-14; } }