Var
   a,b,i,j,p,q,min,max,pos: longint;
   m: array [1..100,1..100] of longint;

Procedure floyd(n: longint);
          var i,j,k: longint;
          begin
          for k:= 1 to n do
              for i:= 1 to n do
                  for j:= 1 to n do
                      if (m[i,j]> m[i,k] + m[k,j]) then
                         m[i,j]:= m[i,k] + m[k,j];
          end;

Begin
     readln(input, p, q);
     fillchar(m, sizeof(m), 1);
     for i:= 1 to q do
         begin
         readln(input,a,b);
         m[a,b]:= 1;
         m[b,a]:= 1;
         end;
     for i:= 1 to p do
         m[i,i]:= 0;
     floyd(p);
     min:= MaxLongint;
     for i:= 1 to p do
         begin
         max:= 0;
         for j:= 1 to p do
             begin
             if (m[i,j]> p) then
                begin
                writeln(output, 'Narf!');
                halt;
                end;
             if (m[i,j]>max) then
                max:= m[i,j];
             end;
         if (max< min) then
            begin
            pos:= i;
            min:= max;
            end;
         end;
     writeln(output, pos, ' ', min+1);
End.
