import java.util.*;
    import java.lang.*;
    import java.io.*;
    import java.math.BigDecimal;
     
    public class Main{
        public static void main (String[] args) throws java.lang.Exception {
            InputReader in = new InputReader(System.in);
            PrintWriter w = new PrintWriter(System.out);
            int n=in.nextInt();
            int m=in.nextInt();
            int[] a=new int[m];
            int[] b=new int[m];
            HashSet<Integer> hs_one=new HashSet<>();
            for(int i=0;i<m;i++){
                a[i]=in.nextInt()-1;
                b[i]=in.nextInt()-1;
                if (a[i]==0){
                    hs_one.add(b[i]);
                }
            }
            for(int i=0;i<m;i++){
                if (hs_one.contains(a[i]) && b[i]==n-1){
                    w.println("POSSIBLE");
                    w.close();
                    return;
                }
            }
            w.println("IMPOSSIBLE");
            w.close();
        }
     
        static class InputReader {
            private InputStream stream;
            private byte[] buf = new byte[1024];
            private int curChar;
            private int numChars;
     
            public InputReader(InputStream stream) {
                this.stream = stream;
            }
     
            public int read() {
                if (numChars == -1)
                    throw new UnknownError();
                if (curChar >= numChars) {
                    curChar = 0;
                    try {
                        numChars = stream.read(buf);
                    } catch (IOException e) {
                        throw new UnknownError();
                    }
                    if (numChars <= 0)
                        return -1;
                }
                return buf[curChar++];
            }
     
            public int peek() {
                if (numChars == -1)
                    return -1;
                if (curChar >= numChars) {
                    curChar = 0;
                    try {
                        numChars = stream.read(buf);
                    } catch (IOException e) {
                        return -1;
                    }
                    if (numChars <= 0)
                        return -1;
                }
                return buf[curChar];
            }
     
            public void skip(int x) {
                while (x-- > 0)
                    read();
            }
     
            public int nextInt() {
                return Integer.parseInt(next());
            }
     
            public long nextLong() {
                return Long.parseLong(next());
            }
     
            public String nextString() {
                return next();
            }
     
            public String next() {
                int c = read();
                while (isSpaceChar(c))
                    c = read();
                StringBuffer res = new StringBuffer();
                do {
                    res.appendCodePoint(c);
                    c = read();
                } while (!isSpaceChar(c));
     
                return res.toString();
            }
     
            public String nextLine() {
                StringBuffer buf = new StringBuffer();
                int c = read();
                while (c != '\n' && c != -1) {
                    if (c != '\r')
                        buf.appendCodePoint(c);
                    c = read();
                }
                return buf.toString();
            }
     
            public double nextDouble() {
                int c = read();
                while (isSpaceChar(c))
                    c = read();
                int sgn = 1;
                if (c == '-') {
                    sgn = -1;
                    c = read();
                }
                double res = 0;
                while (!isSpaceChar(c) && c != '.') {
                    if (c == 'e' || c == 'E')
                        return res * Math.pow(10, nextInt());
                    if (c < '0' || c > '9')
                        throw new InputMismatchException();
                    res *= 10;
                    res += c - '0';
                    c = read();
                }
                if (c == '.') {
                    c = read();
                    double m = 1;
                    while (!isSpaceChar(c)) {
                        if (c == 'e' || c == 'E')
                            return res * Math.pow(10, nextInt());
                        if (c < '0' || c > '9')
                            throw new InputMismatchException();
                        m /= 10;
                        res += (c - '0') * m;
                        c = read();
                    }
                }
                return res * sgn;
            }
            public int[] nextIntArray(int n) {
                int[] a = new int[n];
                for (int i = 0; i < n; i++)
                    a[i] = nextInt();
                return a;
            }
            public long[] nextLongArray(int n) {
                long[] a = new long[n];
                for (int i = 0; i < n; i++)
                    a[i] = nextLong();
                return a;
            }
            public boolean hasNext() {
                int value;
                while (isSpaceChar(value = peek()) && value != -1)
                    read();
                return value != -1;
            }
     
            private boolean isSpaceChar(int c) {
                return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
            }
     
        }
    }

Measured memory_bytes: 56560