N, M = list(map(int,input().split()))



#訪れることができるかのリスト

lst = [0] * N



flag = False #フラグを立てる

for i in range(M): #M種の定期船について確認

    a, b = list(map(int,input().split()))

    if a == 1: #スタートが1の時

        if lst[b-1] == 1: #Nから1回で来る船があるならOK

            flag = True

        else:

            lst[b-1] = 1 #Nから1回で来る船がない時、1からは1回で来れることをメモ

    if b == N: #ゴールがNの時

        if lst[a-1] == 1: #1から1回で来る船があるならOK

            flag = True

        else:

            lst[a-1] = 1 #1から1回で来る船がない時、Nからは1回で来れることメモ



if flag:

    print ('POSSIBLE')

else:

    print ('IMPOSSIBLE')

    





import sys

input = sys.stdin.readline



N, M = list(map(int, input().split()))



G = [tuple(map(int, input().split())) for _ in range(M)]

G.sort(key = lambda x: x[0])



check = [False] * (N + 1)



for a, b in G:

    if a == 1:

        check[b] = True

    else:

        if check[a] and b == N:

            print ('POSSIBLE')

            exit()



print ('IMPOSSIBLE')
N, M = list(map(int, input().split()))
# 訪れることができるかのリスト
lst = [0] * N
flag = False  # フラグを立てる
for i in range(M):  # M種の定期船について確認
    a, b = list(map(int, input().split()))
    if a == 1:  # スタートが1の時
        if lst[b - 1] == 1:  # Nから1回で来る船があるならOK
            flag = True
        else:
            lst[b - 1] = 1  # Nから1回で来る船がない時、1からは1回で来れることをメモ
    if b == N:  # ゴールがNの時
        if lst[a - 1] == 1:  # 1から1回で来る船があるならOK
            flag = True
        else:
            lst[a - 1] = 1  # 1から1回で来る船がない時、Nからは1回で来れることメモ
if flag:
    print("POSSIBLE")
else:
    print("IMPOSSIBLE")

import sys

input = sys.stdin.readline
N, M = list(map(int, input().split()))
G = [tuple(map(int, input().split())) for _ in range(M)]
G.sort(key=lambda x: x[0])
check = [False] * (N + 1)
for a, b in G:
    if a == 1:
        check[b] = True
    else:
        if check[a] and b == N:
            print("POSSIBLE")
            exit()
print("IMPOSSIBLE")

+import sys + +input = sys.stdin.readline -# 訪れることができるかのリスト -lst = [0] * N -flag = False  # フラグを立てる -for i in range(M):  # M種の定期船について確認 -    a, b = list(map(int, input().split())) -    if a == 1:  # スタートが1の時 -        if lst[b - 1] == 1:  # Nから1回で来る船があるならOK -            flag = True -        else: -            lst[b - 1] = 1  # Nから1回で来る船がない時、1からは1回で来れることをメモ -    if b == N:  # ゴールがNの時 -        if lst[a - 1] == 1:  # 1から1回で来る船があるならOK -            flag = True -        else: -            lst[a - 1] = 1  # 1から1回で来る船がない時、Nからは1回で来れることメモ -if flag: -    print("POSSIBLE") -else: -    print("IMPOSSIBLE") +G = [tuple(map(int, input().split())) for _ in range(M)] +G.sort(key=lambda x: x[0]) +check = [False] * (N + 1) +for a, b in G: +    if a == 1: +        check[b] = True +    else: +        if check[a] and b == N: +            print("POSSIBLE") +            exit() +print("IMPOSSIBLE")