#include <bits/stdc++.h>

using namespace std;
int d[200000];
vector<int> graph[200000];
queue<int> q;
int n,m;
void bfs(int s)
{
   for(int i=0; i<n; i++)
   {
       d[i]=1000000000;
   }
   d[s]=0;
   q.push(s);
   while(!q.empty())
   {
       int u=q.front();
       q.pop();
       for(int i=0; i<graph[u].size(); i++)
       {
           int v=graph[u][i];
           if(d[v]>d[u]+1)
           {
               d[v]=d[u]+1;
               q.push(v);
           }
       }
   }
   
   
   
}

int main()
{
    cin >> n >> m;
    for(int i=0; i<m; i++)
    {
        int u,v;
        cin >> u >> v;
        graph[u-1].push_back(v-1);
        graph[v-1].push_back(u-1);
    }
    bfs(0);
    if(d[n-1]==2)
    {
        cout << "POSSIBLE";
    }
    else
    {
        cout << "IMPOSSIBLE";
    }
}