Your friend has recently learned about coprime numbers. A pair of numbers {a, b} is called coprime if the maximum number that divides both a and b is equal to one. Your friend often comes up with different statements. He has recently supposed that if the pair (a, b) is coprime and the pair (b, c) is coprime, then the pair (a, c) is coprime. You want to find a counterexample for your friend's statement. Therefore, your task is to find three distinct numbers (a, b, c), for which the statement is false, and the numbers meet the condition l ≤ a < b < c ≤ r. More specifically, you need to find three numbers (a, b, c), such that l ≤ a < b < c ≤ r, pairs (a, b) and (b, c) are coprime, and pair (a, c) is not coprime.

The single line contains two positive space-separated integers l, r (1 ≤ l ≤ r ≤ 1018; r - l ≤ 50).

Print three positive space-separated integers a, b, c — three distinct numbers (a, b, c) that form the counterexample. If there are several solutions, you are allowed to print any of them. The numbers must be printed in ascending order.  If the counterexample does not exist, print the single number -1.

NoteIn the first sample pair (2, 4) is not coprime and pairs (2, 3) and (3, 4) are. In the second sample you cannot form a group of three distinct integers, so the answer is -1. In the third sample it is easy to see that numbers 900000000000000009 and 900000000000000021 are divisible by three.

var l,r:int64;
begin
//  reset(input,'input.txt');
//  assign(output,'output.txt');
  read(l,r);
  if r-l<2
  then write(-1)
  else begin
       if l mod 2=0
       then write(l,' ',l+1,' ',l+2)
       else begin
              inc(l);
              if r-l<2
              then write(-1)
              else if l mod 2=0
                   then write(l,' ',l+1,' ',l+2)
            end;
       end;
end.

var
  l,r : int64;

begin
  readln(l,r);
  if odd(l) then inc(l);
  if r-l < 2 then writeln(-1) else writeln(l,' ',l+1,' ',l+2);
end.

{$MODE OBJFPC}
Const           Inputfile               = '';//'480A.INP';
                Outputfile              = '';//'480A.OUT';

Var             l,h                     : int64;

Procedure Readfile;
        BEGIN
                Readln(l,h);
        END;

Procedure Process;
        BEGIN
                If (h-l=2) and (l mod 2 = 1) then
                        BEGIN
                                Write(-1);
                                Exit;
                        END;
                If (h-l<2) then
                        BEGIN
                                Write(-1);
                                Exit;
                        END;
                If l mod 2 = 0 then write(l,' ',l+1,' ',l+2) else write(l+1,' ',l+2,' ',l+3);
        END;

BEGIN
        Assign(Input,Inputfile);
        Reset(Input);
        Assign(Output,Outputfile);
        Rewrite(Output);
        Readfile;
        Process;
        Close(Input);
        Close(Output);
END.

var l,r,i,j,k,k1,j1:int64;

function kt1(a,b:int64):boolean;
var r:int64;
begin
    while b<>0 do
    begin
        r:=a mod b;
        a:=b;
        b:=r;
    end;
    exit(a=1);
end;

function kt2(a,b:int64):boolean;
var r:int64;
begin
    while b<>0 do
    begin
        r:=a mod b;
        a:=b;
        b:=r;
    end;
    exit(a<>1);
end;

begin
    readln(l,r);
    i:=l;
    j:=l+1;
    j1:=j;
    k:=l+2;
    k1:=k;
    while i<=r-2 do
    begin
        j:=j1;
        while j<=r-1 do
        begin
            k:=k1;
            while k<=r do
            begin
                if (kt1(i,j)) and (kt1(j,k)) and (kt2(i,k)) then
                begin
                    writeln(i,' ',j,' ',k);
                    exit;
                end;
                k:=k+1;
            end;
            j:=j+1;
        end;
        i:=i+1;
    end;
    writeln(-1);
end.

                var     l               : int64;
                        r               : int64;
                        a               : int64;
                        b               : int64;
                        c               : int64;
                        i               : longint;
                        j               : longint;
                        k               : longint;
                function UCLN(a, b : int64): int64;
var r:int64;
Begin
  while b <> 0 do
    begin
      r := a mod b;
      a := b;
      b := r;
    end;
  UCLN := a;
End;
function ntcn(a ,b : int64): boolean;
begin
        exit(ucln(a,b)=1);
end;
                begin
                        readln(l,r);
                        if r-l+1<3 then
                        begin
                                writeln(-1);
                                halt;
                        end;
                        a:=l;
                        for i:=0 to r-l do
                        begin
                                a:=a+i;
                                b:=a;
                                j:=1;
                                While b+j<=r do
                                begin
                                        c:=b;
                                        k:=1;
                                        while c+k<=r do
                                begin
                                        if (ntcn(a,b+j)=true) and (ntcn(a,c+k)=false) and (ntcn(b+j,c+k)=true) then
                                        begin
                                                writeln(a,' ',b+j,' ',c+k);
                                                halt;
                                        end;
                                        k:=k+1;
                                end;
                                        j:=j+1;
                                end;
                        end;
                        writeln(-1);
                end.

end.

var
l,r:int64;
begin
readln(l,r);
if l mod  2 <>0 then inc(l);
if (l+2>r) then writeln(-1)
else
writeln(l,' ',l+1,' ',l+2);
end.

var
     i,L,R,a,b,c:Int64;
     F:Boolean;
function gcd(aa,bb:Int64):Int64;
begin
     while (aa>0) and (bb>0) do
     if aa>bb then aa:=aa mod bb
              else bb:=bb mod aa;
     gcd:=aa+bb;
 end;

begin
     Readln(L,R);
     F:=False;
     i:=L;
     while i<R do
begin
     a:=i;
     b:=i+1;
     c:=i+2;
     while c<=R do
begin
     if (c>=L) and (c<=R) then
     if (gcd(a,c)<>1) and (gcd(b,c)=1) then begin F:=True; Writeln(a,' ',b,' ',c); Halt; end;

     Inc(c);
 end;
     Inc(i);
 end;
     if not F then Writeln('-1');
 end.

const   fi='';
        fo='';
var     f,g     :text;
        l,r:int64;
begin
        assign(f,fi);reset(f);
        assign(g,fo);rewrite(g);
        readln(f,l,r);
        if r-l<2 then writeln(g,-1)
                else
                begin
                        if r-l=2 then
                                begin
                                        if l mod 2=1 then writeln(g,-1)
                                                else writeln(g,l,' ',l+1,' ',l+2);
                                        end
                        else
                                begin
                                        if l mod 2=1 then writeln(g,l+1,' ',l+2,' ',l+3)
                                                else writeln(g,l,' ',l+1,' ',l+2);
                                end;
                end;
        close(f);
        close(g);
end.

{$APPTYPE CONSOLE}
{$R+,Q+}

uses
  SysUtils;

function GCD(a,b:int64):int64;
begin
  if b=0 then result:=a
  else result:=GCD(b,a mod b);
end;

var
  i,j,k,l,r:int64;

begin
  //Reset(input,'input.txt');
  //Rewrite(output,'output.txt');

  Readln(l,r);
  i:=l;
  while i<=r do begin
    j:=i+1;
    while j<=r do begin
        k:=j+1;
        while k<=r do begin
              if (GCD(i,j)=1) and (GCD(j,k)=1) and (GCD(i,k)<>1) then begin
                  Writeln(i,' ',j,' ',k);
                  halt;
              end;
            inc(k);
        end;
        inc(j);
    end;
    inc(i);
  end;
  writeln(-1);
end.

Var l, r:int64;
Begin
Read(l,r);
If (r-l)<=1 Then
WriteLn('-1')
Else
Begin
If l mod 2=0 Then
WriteLn(l,' ',l+1,' ',l+2)
Else
Begin
If (r-l)=2 Then
WriteLn('-1')
Else
WriteLn(l+1,' ',l+2,' ',l+3);
End;
End;
End.

var l,r:int64;
procedure xuat;
begin
    if (r-l<=1) or ((r-l<=2) and (l mod 2<>0)) then
    begin
        writeln(-1);
        exit
    end;
    if (l mod 2=0) then
    writeln(l,' ',l+1,' ',l+2)
    else writeln(l+1,' ',l+2,' ',l+3);
end;
begin
    readln(l,r);
    xuat;
end.

var
i,j,k,l,r:int64;
function gsd(a,b:int64):int64;
begin
        while (a>0)and(b>0) do
                if a>b then a:=a mod b else b:=b mod a;
        gsd:=a+b;
end;
begin
read(l,r);
i:=l;
while i<=r-2 do
begin
j:=i+1;
while j<=r-1 do
        begin
         k:=j+1;
         while k<=r do
         begin
if (gsd(i,j)=1)and(gsd(j,k)=1)and(gsd(i,k)<>1) then begin writeln(i,' ',j,' ',k);halt;end;
inc(k);
end;
inc(j);
end;
inc(i);
end;
writeln(-1);
end.

program yan;
  var ar:array[1..3]of uint64;
      a,b,c,x,y,n,m,i,j:uint64;
  procedure sort;
    var i,j:longint; x:uint64;
    begin
      for i:=1 to 3-1 do
        for j:=1 to 3-i do
          if ar[j]>ar[j+1] then
            begin
              x:=ar[j]; ar[j]:=ar[j+1]; ar[j+1]:=x;
            end;
    end;
begin
  readln(a,b);
  m:=a; i:=a;
  if a+2>b then begin write(-1); exit; end;
  while i<>b do
    begin
      j:=i+1;
      while j<=b do
        begin
          x:=i; y:=j;
          while (x<>0)and(y<>0) do
            if x>y then x:=x mod y else y:=y mod x;
          if x=0 then c:=y else c:=x;
          if c=1 then
            begin
              n:=j+1;
              while n<=b do
                begin
                if (n<>i)and(n<>j) then
                  begin
                    x:=n; y:=i;
                    while (x<>0)and(y<>0) do
                      if x>y then x:=x mod y else y:=y mod x;
                    if x=0 then c:=y else c:=x;
                    if c=1 then break;
                    x:=n; y:=j;
                    while (x<>0)and(y<>0) do
                      if x>y then x:=x mod y else y:=y mod x;
                    if x=0 then c:=y else c:=x;
                    if c<>1 then break;
                    ar[1]:=n; ar[2]:=i; ar[3]:=j; sort;
                    write(ar[1],' ',ar[2],' ',ar[3]);
                    exit;
                  end;
                inc(n); end;
            end;
          inc(j);
        end;
      inc(i);
    end;
  write(-1);
end.

 var i,j,a,b,x,y,k,f : int64;
begin
 readln(a,b);
 if b-a>2 then
   begin
    if a mod 2=1 then inc(a);
    writeln(a,' ',a+1,' ',a+2);
   end else
 if b-a=2 then
   begin
    if a mod 2=0 then writeln(a,' ',a+1,' ',b) else writeln('-1');
   end else writeln('-1');
end.

{$R+,S+,Q+,I+,O-}

var
  l, r: int64;

begin
  read(l, r);
  if l mod 2 = 1 then inc(l);
  if l + 2 > r then writeln(-1)
  else writeln(l, ' ', l + 1, ' ', l + 2);
end.

{$APPTYPE CONSOLE}
uses SysUtils;
var n,i,j,k,l,r:int64;

function GCD(a,b:int64):int64;
begin
  if b=0 then result:=a
  else result:=GCD(b,a mod b);
end;

begin
  Readln(l,r);
  i:=l;
  while (i<=r) do
  begin
    j:=i+1;
    while (j<=r) do
    begin
      k:=j+1;
      while (k<=r) do
      begin
        if (GCD(i,j)=1) and (GCD(j,k)=1) and (GCD(i,k)<>1) then
        begin
          Writeln(i,' ',j,' ',k);
          halt;
        end;
        inc(k);
      end;
      inc(j);
    end;
    inc(i);
  end;
  writeln(-1);
end.

VAR l, r: int64;

PROCEDURE input;
VAR fi: TEXT;
BEGIN

    readln( l, r);

END;

FUNCTION UCLN(x, y: int64): int64;
BEGIN
     IF x MOD y = 0 THEN UCLN:= y ELSE UCLN:= UCLN(y, x MOD y);
END;

FUNCTION check(x, y: int64): BOOLEAN;
BEGIN
    IF ucln(x, y) = 1 THEN exit(TRUE) ELSE exit(FALSE);
END;

PROCEDURE proc;
VAR fo: TEXT;
    i, j, k: BYTE;
    m: int64;
BEGIN
    input;

    m:= r - l;
    FOR i:= 0 TO m DO
        FOR j:= i TO m DO
            FOR k:= j TO m DO
                IF check(i + l, j + l) AND check(j + l, k + l) AND NOT(check(i + l, k + l)) THEN
                    BEGIN
                        write( i + l, ' ', j + l, ' ', k + l);

                        exit;
                    END;
    write( '-1');

END;

BEGIN
    proc;
END.

var l,r:int64;
begin
readln(l,r);

while l mod 2=1 do
 inc(l);

if r-l<2 then writeln(-1)
         else writeln(l,' ',l+1,' ',l+2);
end.

var l,r:int64;
begin
//  reset(input,'input.txt');
//  assign(output,'output.txt');
  read(l,r);
  if r-l<2
  then write(-1)
  else begin
       if l mod 2=0
       then write(l,' ',l+1,' ',l+2)
       else begin
              inc(l);
              if r-l<2
              then write(-1)
              else if l mod 2=0
                   then write(l,' ',l+1,' ',l+2)
            end;
       end;
end.

{CodeForces #275 Div2 A}
const fin='';
      fout='';
var l,r,res1,res2,res3:qword;
    f,g:text;

begin
  assign(f,fin);reset(f);
  assign(g,fout);rewrite(g);
  read(f,l,r);
  if r-l+1 < 3 then
    begin
      write(g,-1);
      exit;
    end;
  if r-l+1=3 then
    begin
      res1:=l
    end;
  if l mod 2 = 0 then
    begin
      res1:=l;
      res2:=l+1;
      res3:=l+2;
    end
  else
    begin
      res1:=l+1;
      res2:=l+2;
      res3:=l+3;
      if res3 > r then
        begin
          write(g,-1);
          close(g);
          exit;
        end;
    end;
  write(g,res1,' ',res2,' ',res3);
  close(f); close(g);
end.

program gipotezy;
var
l,r,a,b,c:int64;

function wz(x,y:int64):boolean;
var ans:int64;
begin
wz:=false;
while(x<>0) and (y<>0) do
begin
if x>y then x:=x mod y else
y:=y mod x;

ans:=x+y;
if ans=1 then wz:=true else wz:=false;

end;

end;

begin
readln(l,r);

a:=l;
while(a<=r)  do
begin
b:=a+1;

while(b<=r) do
  begin
  c:=b+1;

     while(c<=r) do
      begin

      if (wz(a,b)= true) and (wz(b,c)=true) and
      (wz(a,c)=false ) then begin  writeln(a,' ',b,' ',c); halt; end;
        inc(c);
      end;

       inc(b);
    end;

    inc(a);
   end;

writeln('-1');
end.

var
   l, r: int64;

begin
   readln(l,r);
   if odd(l) then inc(l);
   if r - l >= 2 then write(l, ' ', l + 1, ' ', l + 2, ' ' )
   else write('-1');
end.

Var
    r, l: Int64;

Begin
    Read(r, l);
    If (l - r + 1 < 3) or ((l - r + 1 = 3) and (r mod 2 = 1)) then
        Write(-1)
    Else If r mod 2 = 0 then
        Write(r, ' ', r + 1, ' ', r + 2)
    Else If r mod 2 = 1 then
        Write(r + 1, ' ', r + 2, ' ', r + 3)
End.

var l, r: int64;
begin
     readln(l,r);
     if (r-l+1)<3 then write (-1) else
     begin
         if l mod 2=0 then
         begin
              write(l,' ',l+1,' ',l+2); halt;
         end;
         if (l+3)>r then
         begin
              write (-1);
              halt;
         end;
         l := l+1;
         write(l,' ',l+1,' ',l+2);
     end;
end.

{$Mode Objfpc}
Const
                Fi              ='';//483.inp';
                Fo              ='';//483.out';
//
Var
        L,R     :int64;
Begin
        assign(input,fi) ;reset(input)   ;
        assign(output,fo);rewrite(output);
        Readln(L,R);
        If ((R-L+1)<=2) or ((R-L+1=3) and (L mod 2 = 1)) then Write(-1)
        Else
           If (L mod 2 = 0) then Write(L,' ',L+1,' ',L+2)
           Else Write(L+1,' ',L+2,' ',L+3);
End.

var
l,r:int64; i:longint;
begin
 read(l,r);
 if (r-l>2)or((r-l=2)and(l mod 2 = 0)) then
  begin
   if (l mod 2 = 1) then inc(l);
   for i:=0 to 2 do
    write(i+l,' ')
  end else
    write('-1');
end.

const
   fi='';
   fo='';
var
  x,y,z:qword; a,b,c,d:qword;
Function uc(x,y:int64):boolean;
var
tam:qword;
Begin
While y<>0 do
   Begin
   tam:=x mod y;
   x:=y;
   y:=tam;
   End;
If x=1 then exit(true);
exit(false);
End;

Begin
Assign(input,fi);
Reset(input);
Assign(output,fo);
Rewrite(output);
Readln(input,x,y); d:=0;
a:=x-1;
While a<y do
   Begin
   a:=a+1;
   b:=a;
   While b<y do
      Begin
      b:=b+1;
      c:=b;
      While c<y do
         Begin
         c:=c+1;
         If (a<b) and (b<c) then
            Begin
            If (uc(a,b)) and ((uc(b,c)) and (not uc(a,c))) then
               Begin
               Writeln(a,' ',b,' ',c);
               inc(D);
               halt;
               End;
            End;
         End;
      End;
   End;
If d=0 then
   Write(-1);
Close(input);
Close(output);
End.

{$mode objfpc}

const
 inputfile='';
 outputfile='';

var
 fi,fo:text;
 l,r:int64;
procedure openf;
begin
 assign(fi,inputfile);
 reset(fi);
 assign(fo,outputfile);
 rewrite(fo);
end;

procedure input;
begin
 readln(fi,l,r);
end;

function gcd(a,b:int64):int64;
var
 rr:int64;

begin
 while b<>0 do
  begin
   rr:=a mod b;
   a:=b;
   b:=rr;
  end;
 exit(a);
end;

procedure process;
begin
 if r-l<2 then
  begin
   write(fo,-1);
   exit;
  end;
 if l mod 2 = 0 then
  write(fo,l,' ',l+1,' ',l+2);
 if l mod 2 = 1 then
  begin
   if r-l=2 then
    if gcd(l,r)<>1 then write(fo,l,' ',l+1,' ',l+2) else write(fo,-1);
   if r-l>2 then write(fo,l+1,' ',l+2,' ',l+3);
  end;
end;

procedure output;
begin
end;

procedure closef;
begin
 close(fi);
 close(fo);
end;

begin
 openf;
 input;
 process;
 output;
 closef;
end.

Var l, r: int64;
Begin
    ReadLn(l, r);
    if l mod 2 = 1 then inc(l);
    if r - l >= 2 then WriteLn(l, ' ', l+1, ' ', l+2) else WriteLn(-1);
end.

var l, r : int64;

begin
    readln(l, r);
    if (r - l < 2) or ((r - l = 2) and (l mod 2 = 1)) then writeln(-1)
    else
    begin
        if (l mod 2 = 1) then writeln(l + 1, ' ', l + 2, ' ', l + 3)
        else writeln(l, ' ', l + 1, ' ', l + 2);
    end;
end.

var l,r: int64;
begin
  read (l,r);
  if (l mod 2<>0) then
   l:=l+1;
   if (r-l<2) then
  write (-1)
   else
   write(l,' ',l+1,' ',l+2);
   //bayan
end.

 const  eps=1e-11;  besk=200000000000000008;
    modul=1000000007;
   label 1,2,3,4;
    type

    mas=array [-10000..10000000] of int64;   point=record x,y,z:real;end;
    zap=record p1,p2,p3 :int64;end; zap1=^zap;
    mass=array[-10000..10000000] of int64;mass1=^mass;
    var t,t1,t2,t3,cc,aa,bb,jj,pold,xx,yy,pp,n2,ost,ll,rr,p,q,tt,n1,h,n,kk,qq,p3,ot,kol,nn,p1,p2,x0,y0,s1,s2,m,s,imax,smin,dl,besk1:int64;
    shag,imin,ii,k,i1,i2,i3,i4,i5,i6,i7,j1,j2,mask,step,i,j:longint;
     sssnew:array[-10..1000] of char;
    poin:zap;
    vec:array[-100..1000] of zap;
     c1,c2:array[-1000..100000] of int64;
    fact,dd, a1,bl,br,c,a,b:array[-300000..2000000] of int64;
   sumsum,sum, scob, razr :array[-1..31,-10..110000] of longint;
     maxsum:array[-1..1010,-1..1010] of int64;
    sss, ss1,ss2:string;
    newgr,gr:array[-100..200000] of boolean;
    pole:array[-1..1500,-1..1500] of char;
    ss:array[-100..1000000] of string;
    ch: char;
    zan,marked:array[-10..1000000] of boolean;
    maxpr:array[0..100000] of string;
     pr,aanew,v0,v1,s0,t0:extended;
     z,x1,y1,y,x:array[-1..30000] of int64;
     xxx,yyy:array[-1..100000] of double;
    xxnew,per,pp2, ee,yot:double;
       flagg,flag2,flag,flag1:boolean;
    function al(x,y:real):real; var t0,t1,p,s0,s1:real;
 begin
     if (x>0)and(y>=0) then p:=arctan(y/x);
     if x<0 then p:=pi+arctan(y/x);
     if(x>0)and(y<0) then p:=2*pi+arctan(y/x);
     if x=0 then if (y>=0) then p:=pi/2 else p:=3*pi/2;
     al:=p;
 end;
  function min(x,y:int64):int64;begin min:=x;if y<x then min:=y; end;
  function max(x,y:int64):int64;begin max:=x;if y>x then max:=y; end;

  function nod(x,y:int64):int64; var z:int64;
begin   repeat  z:=x mod y;x:=y;y:=z;   until  z=0 ;  nod:=x;end;

  function evkl(a,b:int64):zap1; var d,x,y,r,q,i,j,k,x1,x2,y1,y2:int64;
  tt:zap; tt1:zap1;
begin
  if a<b then begin r:=a;a:=b;b:=r; end;
  x2:=1;x1:=0;y2:=0;y1:=1;
  while b>0 do
    begin q:=a div b; r:=a mod b; x:=x2-q*x1;y:=y2-q*y1;
          a:=b;b:=r;x2:=x1;x1:=x;y2:=y1;y1:=y;
    end;
    d:=a; x:=x2;y:=y2; tt.p1:=d;tt.p2:=x;tt.p3:=y; tt1:=@tt;
   evkl:=tt1;
end;

function degg(a:int64;k:int64):int64; var p:int64;
begin
 if k<=0 then degg:=1 else if odd(k) then degg:=(degg(a,k-1)*a) mod modul  else
   begin  p:=degg(a,k div 2); degg:=(p*p) mod modul;    end;

end;

function good(aa,bb,cc:int64):boolean;  var pp1,pp2,jj,ii,i1,i2,i3:int64;
 begin
    if (nod(aa,bb)=1)and(nod (bb,cc)=1)and(nod(aa,cc)>1)and(aa<>bb)and(bb<>cc)and(aa<>cc) then
    good:=true else good:=false;

 end;

begin

  {  assign (input,'input.txt');reset(input);
      assign (output,'output.txt'); rewrite(output);
   }
  read(p1,p2);
    t:=p2-p1;
   for i:=0 to t do for j:=i to t do for k:=j to t do
     begin
        t1:=p1+i; t2:=p1+j;  t3:=p1+k;
        if good(t1,t2,t3) then begin write(t1,' ',t2,' ',t3); goto 1;  end;

     end;

  write(-1);

     1:          close(output);
end.

program asd;
var l,p:int64;
begin
read(l,p);
if p-l+1>=4 then
 if (l mod 2=0) then writeln(l,' ',l+1,' ',l+2)
 else writeln(l+1,' ',l+2,' ',l+3)
else
if p-l+1>=3 then
 if (l mod 2=0) then writeln(l,' ',l+1,' ',l+2)
 else writeln(-1)
else writeln(-1);

end.

Program _483A;
var
  L, R : int64;
begin
  read(L, R);
  if R <= L + 1
     then write(-1)
     else if R = L + 2
             then if L mod 2 = 1
                     then write(-1)
                     else write(L, ' ', L + 1, ' ', R)
             else if L mod 2 = 1
                     then write(L + 1, ' ', L + 2, ' ', L + 3)
                     else write(L, ' ', L + 1, ' ', L + 2);
end.

uses math;
const
        tfi='';
        tfo='';

var
        fi,fo:Text;
        x,y:int64;

procedure xuli;
        begin
            readln(fi,x,y);
            if x mod 2=1 then inc(x);
            if y-x<2 then writeln(fo,-1)
            else
            if x mod 2=0 then writeln(fo,x,' ',x+1,' ',x+2);
        end;
begin
        assign(fi,tfi);
        assign(fo,tfo);
        reset(fi);
        rewrite(fo);
        xuli;
        close(fo);
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  l, r: int64;

begin
  read(l, r);
  if l mod 2 = 1 then inc(l);
  if l + 2 > r then writeln(-1)
  else writeln(l, ' ', l + 1, ' ', l + 2);
end.

uses math;
var a,b,c,cc:array [1..10000]  of longint;
i,j,l,r,z:int64;
 n,m:int64;
   procedure sort(l,r: longint);
      var
         i,j,x,y,xx: longint;
      begin
         i:=l;
         j:=r;
         x:=a[(l+r) div 2];
         xx:=b[(l+r) div 2];
         repeat
           while (a[i]<x) or ((a[i]=x) and (b[i]<xx)) do
            inc(i);
           while (x<a[j]) or ((a[j]=x) and (b[j]>xx)) do
            dec(j);
           if not(i>j) then
             begin
                y:=a[i];
                a[i]:=a[j];
                a[j]:=y;
                y:=b[i];
                b[i]:=b[j];
                b[j]:=y;
                inc(i);
                j:=j-1;
             end;
         until i>j;
         if l<j then
           sort(l,j);
         if i<r then
           sort(i,r);
      end;
      function prov(x,y:int64):boolean;
       begin
        while (x>0) and (y>0) do
         if x>y then x:=x mod y else y:=y mod x;
         if (x+y)=1 then exit(true) else exit(false);
       end;

     begin
       ////
      z:=0; i:=0; j:=0; m:=0; n:=0;
      readln(l,r);
      i:=l;
       while (i<=r) do
        begin
         j:=i+1;
         while (j<=r) do
          begin
           z:=j+1;
            while (z<=r) do
             begin
              if (i<>j) and (i<>z) and (j<>z) then
              begin
              if (prov(i,j)) and (prov(j,z)) and (not(prov(i,z))) then
               begin
                writeln(i,' ',j,' ',z);
                halt;
                end;
                inc(Z);
             end;
             end;
             inc(j);
          end;
          inc(i);
        end;
        writeln(-1);

     end.

Var f : text;
    l,r,k : int64;
    kt : boolean;
Begin
 Assign(f,''); Reset(f);
 Readln(f,l,r); close(f);
 Assign(f,''); Rewrite(f);
 kt:=true;
 If r-l+1<=2 then kt:=false
  Else
    If l mod 2 <>0 then
     Begin
      k:=l+1;
      If k+2<=r then
       writeln(f,k,' ',k+1,' ',k+2)
       Else kt:=false;
     End
     Else
      Begin
       k:=l;
       If k+2<=r then
        writeln(f,k,' ',k+1,' ',k+2)
        Else kt:=false;
      End;
 If kt=false then writeln(f,'-1');
 Close(f);
END.

var
i,j,k,l,r:int64;
function gsd(a,b:int64):int64;
begin
        while (a>0)and(b>0) do
                if a>b then a:=a mod b else b:=b mod a;
        gsd:=a+b;
end;
begin
read(l,r);
i:=l;
while i<=r-2 do
begin
j:=i+1;
while j<=r-1 do
        begin
         k:=j+1;
         while k<=r do
         begin
if (gsd(i,j)=1)and(gsd(j,k)=1)and(gsd(i,k)<>1) then begin writeln(i,' ',j,' ',k);halt;end;
inc(k);
end;
inc(j);
end;
inc(i);
end;
writeln(-1);
end.

var l, r, z: int64;
    i, j, k: longint;
function gcd(x, y: int64): boolean;
var z: int64;
begin
        while y > 0 do
        begin
                z := x mod y;
                x := y;
                y := z;
        end;
        if x = 1 then
                gcd := true
        else gcd := false;
end;
begin
        readln(l, r);
        for i := 0 to r - l - 2 do
                for j := i + 1 to r - l - 1 do
                        for k := j + 1 to r - l do
                                if gcd(i + l, j + l) and gcd(j + l, k + l) and not gcd(i + l, k + l) then
                                begin
                                        writeln(i + l, ' ', j + l, ' ', k + l);
                                        exit;
                                end;
        writeln('-1');
end.

var
     l, r: int64;

begin
     read(l, r);
     if r - l < 2 then
     begin
          write(-1);
          exit;
     end;

     if l mod 2 = 0 then write(l, ' ', l + 1, ' ', l + 2)
     else
     begin
          if (r - l - 1 >= 2) then
               write(l + 1, ' ', l + 2, ' ', l + 3)
          else
               write(-1);
     end;
end.

function gcd(a, b: qword): qword;
begin
 while (a <> 0) and (b <> 0) do
  if a > b then
   a:= a mod b
  else
   b:= b mod a;

 gcd:= a or b;
end;

var a, b, c, l, r: qword;
begin
 read(l, r);
 a:= l;
 while a <= r do
  begin
   b:= a + 1;
   while b <= r do
    begin
     c:= b + 1;
     while c <= r do
      begin
       if (gcd(a, b) = 1) and (gcd(b, c) = 1) and (gcd(a, c) > 1) then
        begin
         write(a,' ',b,' ',c);
         exit;
        end;
       inc(c);
      end;
     inc(b);
    end;
   inc(a);
  end;
 write(-1);
end.

 var i,j,a,b,x,y,k,f : int64;
begin
 readln(a,b);
 if b-a>2 then
   begin
    if a mod 2=1 then inc(a);
    writeln(a,' ',a+1,' ',a+2);
   end else
 if b-a=2 then
   begin
    if a mod 2=0 then writeln(a,' ',a+1,' ',b) else writeln('-1');
   end else writeln('-1');
end.

program A483;
var a, b, i, i2, i3: int64;
function iscoprime(a, b: int64): boolean;
 var z: int64;
 begin
  while b<>0 do begin
   z:=a mod b;
   a:=b;
   b:=z;
  end;
  if a=1 then exit(true) else exit(false);
 end;
begin
 readln(a, b);
 i:=a;
 i2:=a+1;
 i3:=a+2;
 while i<=b-2 do begin
  i2:=i+1;
  while i2<=b-1 do begin
   i3:=i2+1;
   while i3<=b do begin
    if iscoprime(i, i2) and iscoprime(i2, i3) and not(iscoprime(i, i3)) then begin
     writeln(i, ' ', i2, ' ', i3);
     exit
    end;
    inc(i3);
   end;
   inc(i2);
  end;
  inc(i);
 end;
 writeln(-1);
end.

Var  i,j,k:longint;
     temp,l,r:int64;
Function UCLN(a,b:int64):boolean;
Var temp:int64;
Begin
   While b>0 do
        begin
            temp:=a mod b;
            a:=b;
            b:=temp;
        end;
   Exit(a=1);
End;

BEGIN
   Readln(l,r);
   If r-l+1<3 then
        begin
          writeln(-1);
          halt;
        end;
   temp:=r-l+1;
   For i:=1 to temp-2 do
       For j:=i+1 to temp-1 do
           For k:=j+1 to temp do
                If (UCLN(i+l-1,j+l-1)) and (UCLN(j+l-1,k+l-1)) and (not(UCLN(i+l-1,k+l-1))) then
                        begin
                                writeln(i+l-1,' ',j+l-1,' ',k+l-1);
                                halt;
                        end;
   Writeln(-1);

END.

var r,l:qword;
begin
    readln(l,r);
    if (r=l) or (l+2>r) then writeln(-1)
    else
    begin
        if l mod 2=0 then writeln(l,' ',l+1,' ',l+2)
        else
            if (l+3<=r) then
            begin
                writeln(l+1,' ',l+2,' ',l+3);
            end
            else writeln(-1);
    end;
end.

Var l,r:int64;
Begin
   Readln(l,r);
   if (r-l)<2 then write('-1')
   else
   begin
      If l mod 2=0 then write(l,' ',l+1,' ',l+2)
      else
      begin
         If (r-l)>=3 then write(l+1,' ',l+2,' ',l+3)
         else write('-1');
      end;
   end;
End.

var a,b,c,l,r,d,kl:int64;
i,x:longint;
begin

  readln(l,r);
  if l=1 then
         begin
           a:=2;
           b:=3;
           c:=4;
           if c<=r then writeln(a,' ',b,' ',c)
                         else writeln(-1)
         end
         ELSE
         BEGIN

  if l mod 2=0 then
              begin
                 a:=l;
                 b:=l+1;
                 c:=l+2;
                 if c<=r then writeln(a,' ',b,' ',c)
                         else writeln(-1)
              end
           else   begin
                a:=l+1;
                b:=l+2;
                c:=l+3;
                if c<=r then writeln(a,' ',b,' ',c)
                        else writeln(-1);
              end;
           END;
end.

{$R+,S+,Q+,I+,O-}

var
  l, r: int64;

begin
  read(l, r);
  if l mod 2 = 1 then inc(l);
  if l + 2 > r then writeln(-1)
  else writeln(l, ' ', l + 1, ' ', l + 2);
end.

var
  l,r:int64;
begin
  readln(l,r);
  if r-l<2 then writeln(-1) else
    if (r-l=2) and (r mod 2 = 1) then writeln(-1) else begin
       if l mod 2 = 0 then writeln(l,' ',l+1,' ',l+2)  else writeln(l+1,' ',l+2,' ',l+3);
    end;
end.

var kq:array[1..3] of qword;

function coprime(x,y:qword):qword;
var r,temp:qword;
begin
	if x<y then
        begin
                temp:=x;
                x:=y;
                y:=temp;
        end;
	if x mod y = 0 then exit(y) else coprime:=coprime(y,x mod y);
end;

procedure gosearch(l,r:qword);
var i:longint;
begin
	i:=l+1;
	while (l<r) do if (coprime(l,i)=0) and (coprime(kq[1],i)<>0 ) then kq[3]:=i else inc(i);
end;

procedure process(l,r:qword);
begin
	if l mod 2 = 0 then begin kq[1]:=l; kq[2]:=l+1; kq[3]:=l+2; end
	else
	begin
		kq[1]:=l;
		kq[2]:=l+1;
		gosearch(l+1,r);
	end;
end;

procedure proonf;
var l,r:qword;
label stop;
begin
	readln(l,r);
        if (r-l+1<3)or((r-l+1=3)and(l mod 2<>0)) then begin writeln(-1); goto stop end
        else
        begin
                if l mod 2=0 then writeln(l,#32,l+1,#32,l+2)
                else writeln(l+1,#32,l+2,#32,l+3);
        end;
        stop:
end;

//main
begin
        proonf;
end.

program Project;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
    n, m , x, y, q1, q2 :integer;
    l, r, i, j, u :int64;

function nod(x, y:int64):int64;
begin
    if (x <> 0) then
        nod := nod(y mod x, x)
    else
        nod := y;
end;

begin
    readln(l, r);
    i := l - 1;
    while (i < r) do
    begin
        inc(i);
        j := l - 1;
        while (j < r) do
        begin
            inc(j);
            u := l - 1;
            while (u < r) do
            begin
                inc(u);
                if (i = j) or (j = u) or (u = i) or (i > j) or (j > u) then
                    continue;
                if (i < j) and (j < u) and (nod(i, j) = 1) and (nod(j, u) = 1) and (nod(i, u) <> 1) then
                begin
                    writeln(i, ' ', j, ' ', u);
                    halt(0);
                end;
            end;
            end;
   end;

    writeln('-1');
    readln;
    readln;
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  l, r: int64;

begin
  read(l, r);
  if l mod 2 = 1 then inc(l);
  if l + 2 > r then writeln(-1)
  else writeln(l, ' ', l + 1, ' ', l + 2);
end.

var a,b,c,l,r:int64;
function nod(a1,b1:int64):int64;
  begin
  while (a1>0) and (b1>0) do
     if a1>b1 then a1:=a1 mod b1
              else b1:=b1 mod a1;
  nod:=a1+b1;
  end;
begin
readln(l,r);
a:=l;
b:=l;
c:=l;
while a<=r do
 begin
 while b<=r do
  begin
  while c<=r do
   begin
   if (nod(a,b)=1) and (nod(b,c)=1) and (nod(a,c)<>1) and (a<>b) and (b<>c) and (a<>c) and (a<=b) and (b<=c) and (a<=c)
        then begin write(a,' ',b,' ',c); halt; end;
   inc(c);
   end;
  inc(b);
  c:=l;
  end;
 b:=l;
 inc(a);
 end;
write(-1);
end.

uses
  SysUtils;

var
  l,r,i:int64;
begin
  readln(l,r);
    if ((l+2)>r) then
    begin
      write('-1');
      exit;
    end;
  if (l mod 2=0)then  begin
    write (l,' ',l+1,' ',l+2);
    exit;
    end;
  if ((l+3)>r) then
    begin
      write('-1');
      exit;
    end;
  if (l mod 2<>0)then  begin
    write (l+1,' ',l+2,' ',l+3);
    exit;
    end;
end.

var
  l,r : int64;

begin
  readln(l,r);
  if odd(l) then inc(l);
  if r-l < 2 then writeln(-1) else writeln(l,' ',l+1,' ',l+2);
end.

{$APPTYPE CONSOLE}
uses SysUtils;
var n,i,j,k,l,r:int64;

function GCD(a,b:int64):int64;
begin
  if b=0 then result:=a
  else result:=GCD(b,a mod b);
end;

begin
  Readln(l,r);
  i:=l;
  while (i<=r) do
  begin
    j:=i+1;
    while (j<=r) do
    begin
      k:=j+1;
      while (k<=r) do
      begin
        if (GCD(i,j)=1) and (GCD(j,k)=1) and (GCD(i,k)<>1) then
        begin
          Writeln(i,' ',j,' ',k);
          halt;
        end;
        inc(k);
      end;
      inc(j);
    end;
    inc(i);
  end;
  writeln(-1);
end.

var
 l,r:qword;
begin
 readln(l,r);
 if r-l<2 then writeln(-1)
  else
   begin
    if l mod 2=0 then writeln(l,' ',l+1,' ',l+2)
     else
      if r-l>2 then writeln(l+1,' ',l+2,' ',l+3)
       else writeln(-1);
   end;
end.

VAR l, r, a, b, c : int64;
FUNCTION UCLN(i,j : int64) : boolean;
 Var r : int64;
 Begin
        while i <> 0 do
                begin
                        r := j mod i;
                        j := i;
                        i := r;
                end;
        if j = 1 then UCLN := true else UCLN := false;
 End;
PROCEDURE COPRIME(l,r : int64);
 Var i, j : int64;
 Begin
        c := 0;
        i := l;
        while (i <= r) and (c = 0) do
                begin
                        a := 0;
                        j := i+1;
                        while (j <= r) and (a = 0) do
                                if UCLN(i,j) = true then
                                        begin
                                                a := i;
                                                b := j;
                                        end
                                else j := j + 1;
                        j := j + 1;
                        while (j <= r) and (c = 0) do
                                begin
                                        if (UCLN(a,j) = false) and (UCLN(b,j) = true) then c := j;
                                        j := j + 1;
                                end;
                        i := i + 1;
                end;
 End;
PROCEDURE PROCESS;
 Var f1, f2 : text;
 Begin
        readln(l,r);
        COPRIME(l,r);
        if c <> 0 then write(a,' ',b,' ',c)
        else write('-1');

 End;
BEGIN
        PROCESS;
END.

function gcd(a, b: qword): qword;
begin
 while (a <> 0) and (b <> 0) do
  if a > b then
   a:= a mod b
  else
   b:= b mod a;

 gcd:= a or b;
end;

var a, b, c, l, r: qword;
begin
 read(l, r);
 a:= l;
 while a <= r do
  begin
   b:= a + 1;
   while b <= r do
    begin
     c:= b + 1;
     while c <= r do
      begin
       if (gcd(a, b) = 1) and (gcd(b, c) = 1) and (gcd(a, c) > 1) then
        begin
         write(a,' ',b,' ',c);
         exit;
        end;
       inc(c);
      end;
     inc(b);
    end;
   inc(a);
  end;
 write(-1);
end.

var l, r: int64;
begin
     readln(l,r);
     if (r-l+1)<3 then write (-1) else
     begin
         if l mod 2=0 then
         begin
              write(l,' ',l+1,' ',l+2); halt;
         end;
         if (l+3)>r then
         begin
              write (-1);
              halt;
         end;
         l := l+1;
         write(l,' ',l+1,' ',l+2);
     end;
end.

program A483;
var
    f: text;
    l, r, a, b, c: qword    ;
    fl: boolean;
function ucln(x, y: qword): qword;
begin
    if x mod y = 0 then ucln := y else ucln := ucln(y, x mod y);
end;

function coprime(x, y: qword): boolean;
begin
    if ucln(x, y) = 1 then coprime := true else coprime := false;
end;
begin
    fl := false;
    assign(f, ''); reset(f);
    readln(f, l, r);
    if l = r then begin writeln(-1); exit end;
    a := l; b := l+1; c := l+2;
    while a <= r-2 do begin
        b := l+1;
        while  b <= r-1 do begin
            c := l+2;
            while c <= r do begin
                if (coprime(a, b) and  coprime(b, c) and (not coprime(a, c)) and
                   (a <> b) and (b<>c)) then begin
                       writeln(a, ' ', b, ' ', c);
                  //     fl := true;
                       exit;
                   end;
                inc(c);
            end;
            inc(b)
        end;
        inc(a);
    end;
    writeln(-1);
end.

var l,r:qword;
begin
read(l,r);
if(l mod 2=0) then
  if(r-l)<2 then
    writeln('-1')
  else
    writeln(l,' ',l+1,' ',l+2)
else
  if(r-l)<3 then
    writeln('-1')
  else
    writeln(l+1,' ',l+2,' ',l+3);
end.

program Tha;
var
 l,r:int64;
begin
 readln(l,r);
 if l mod 2=1 then
  l:=l+1;
 if r-l>1 then
  writeln(l,' ',l+1,' ',l+2)
 else writeln(-1);
end.

var l,r,a,b,c : int64;
function ucln(a,b: int64) : int64;
var t: int64;
begin
    while b>0 do
    begin
        a:=a mod b;
        t:=a;
        a:=b;
        b:=t;
    end;
    exit(a);
end;
begin
    readln(l,r);
    a:=l;
    b:=l+1;
    c:=l+2;
    while a<=r-2 do
    begin
        b:=l+1;
        while b<=r-1 do
        begin
            c:=l+2;
            while c<=r do
            begin
                if (ucln(a,b)=1) and (ucln(b,c)=1) then
                    if not(ucln(a,c)=1) then
                    begin
                        writeln(a,' ',b,' ',c);
                        exit;
                    end;
                inc(c);
            end;
            inc(b);
        end;
        inc(a);
    end;
    write(-1);
end.

var
  l,r,a:int64;
begin
  readln(l,r);
  if l mod 2=1 then a:=l+1 else a:=l;

  if r-a<2 then writeln(-1)
  else
  begin
    writeln(a,' ',a+1,' ',a+2);
  end;
end.

var
     l, r: int64;

begin
     read(l, r);
     if r - l < 2 then
     begin
          write(-1);
          exit;
     end;

     if l mod 2 = 0 then write(l, ' ', l + 1, ' ', l + 2)
     else
     begin
          if (r - l - 1 >= 2) then
               write(l + 1, ' ', l + 2, ' ', l + 3)
          else
               write(-1);
     end;
end.

Var l,r:int64;
Begin
   Readln(l,r);
   if (r-l)<2 then write('-1')
   else
   begin
      If l mod 2=0 then write(l,' ',l+1,' ',l+2)
      else
      begin
         If (r-l)>=3 then write(l+1,' ',l+2,' ',l+3)
         else write('-1');
      end;
   end;
End.

 var i,j,a,b,x,y,k,f : int64;
begin
 readln(a,b);
 if b-a>2 then
   begin
    if a mod 2=1 then inc(a);
    writeln(a,' ',a+1,' ',a+2);
   end else
 if b-a=2 then
   begin
    if a mod 2=0 then writeln(a,' ',a+1,' ',b) else writeln('-1');
   end else writeln('-1');
end.

var l, r : int64;

begin
    readln(l, r);
    if (r - l < 2) or ((r - l = 2) and (l mod 2 = 1)) then writeln(-1)
    else
    begin
        if (l mod 2 = 1) then writeln(l + 1, ' ', l + 2, ' ', l + 3)
        else writeln(l, ' ', l + 1, ' ', l + 2);
    end;
end.

var l,r:int64;
begin
    read(l,r);
    if (r-l>=3) and (l mod 2=0) then
        write(l,' ',l+1,' ',l+2)
    else
    begin
        if (r-l>=3) and (l mod 2=1) then
            write(l+1,' ',l+2,' ',l+3)
    else
    begin
        if (r-l=2) and (l mod 2=0) then
            write(l,' ',l+1,' ',l+2)
    else    write(-1);
    end;
    end;
end.

var
  l,r,i,j,k : int64;

  function gcd(x,y : int64) : int64; begin
    if y = 0 then exit(x) else exit(gcd(y,x mod y));
  end;

begin
  readln(l,r);
  i:=l;
  while i <= r do begin
    j:=i+1;
    while j <= r do begin
      k:=j+1;
      while k <= r do begin
        if (gcd(i,j) = 1) and (gcd(j,k) = 1) and (gcd(i,k) > 1) then begin writeln(i,' ',j,' ',k); halt; end;
        inc(k);
      end;
      inc(j);
    end;
    inc(i);
  end;
  writeln(-1);
end.

Var l, r: int64;
Begin
    ReadLn(l, r);
    if l mod 2 = 1 then inc(l);
    if r - l >= 2 then WriteLn(l, ' ', l+1, ' ', l+2) else WriteLn(-1);
end.

program ZAD_A;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
   l,r,i,j,k:int64;
function nod(a,b:int64):int64;
begin
   if (b=0) then nod:=a
   else nod:=nod(b,a mod b);
end;
begin
   readln(l,r);
   i:=l;
   while i<=r do
      begin
         j:=l;
         while j<=r do
            begin
               k:=l;
               while k<=r do
                  begin
                     if (i<>j) and (i<>k) and (j<>k) and (nod(i,j)=1) and (nod(j,k)=1) and (nod(i,k)<>1) then
                        begin
                           writeln(i,' ',j,' ',k);
                           readln;
                           halt;
                        end;
                     inc(k);
                  end;
               inc(j);
            end;
         inc(i);
      end;
   writeln(-1);
   readln;
end.

var l,r:longint;
begin
    readln(l,r);
    if l=r then
    begin
        writeln(-1); exit;
    end;
    if l mod 2=0 then write(l+1,' ') else write(l,' '); inc(l);
    if l>r then
    begin
        writeln(-1); exit;
    end;
    if l mod 3=0 then write(l+1,' ') else write(l,' ');inc(l);
    if l>r then
    begin
        writeln(-1); exit;
    end;
    if l mod 5=0 then write(l+1,' ') else write(l,' ');
end.

VAR i,j,u,l,r:int64;
Function nod(a,b:int64):int64;
begin
while (a>0) and (b>0) do

      if b>a then b:=b mod a
             else a:=a mod b;
    nod:=a+b;
end;
BEGIN
readln(l,r);
i:=l;
j:=i+1;
u:=j+1;
if r-l=1 then write('-1');
while i<=r-2 do begin
  while j<=r-1 do begin
    while u<=r do begin
       if (nod(i,j)=1) and (nod(i,u)<>1) and (nod(j,u)=1)   then begin
         writeln(i,' ',j,' ',u);
         exit;
       end;
       if (i=r-2) and (j=r-1)  and (u=r) then begin
         write('-1');
         exit;
       end;
       inc(u);
     end;
     inc(j);
  end;
  inc(i);
end;
END.

var l,r,x,y,z:int64;
function ncd(a,b:int64):int64;
 begin
  if a<>0 then ncd:=ncd(b mod a,a) else ncd:=b;
 end;
begin
 read(l,r);
  if r-l+1<3 then writeln(-1) else begin
   while l<=r-2 do begin
    x:=l+1;
     while x<=r-1 do begin
      y:=x+1;
       while y<=r do begin
        if not((ncd(l,x)=1)and(ncd(l,y)=1)and(ncd(x,y)=1)) then begin
         writeln(l,' ',x,' ',y);
         exit;
        end;
         inc(y);
       end;

        inc(x);
      end;
       inc(l);
     end;
      writeln(-1);
     end;

end.

var i,j,t:longint;
    x,l,r:qword;
function UCLN(x,y:qword):qword;
var tam:qword;
begin
    while x mod y<>0 do
    begin
        tam:=x mod y;
        x:=y;
        y:=tam;
    end;
    UCLN:=y;
end;
begin
    readln(l,r);
    if (l=r) or (l+2>r) then
    begin
        writeln(-1); exit;
    end;
    for i:=0 to 48 do
    begin
        if l+i>r then break;
        l:=l+i;
        for j:=i+1 to 49 do
        begin
            if l+j>r then break;
            if UCLN(l,l+j)=1 then
                for t:=j+1 to 50 do
                begin
                    if l+t>r then break;
                    if (UCLN(l+j,l+t)=1) and (UCLN(l,l+t)<>1) then
                    begin
                        writeln(l,' ',l+j,' ',l+t); exit;
                    end;
                end;
        end;
    end;
    writeln(-1);
end.

var a,b:int64;
function xuat(l,r:int64):int64;
begin
    if (r-l<=1) or ((r-l<=2) and (l mod 2<>0)) then exit(-1);
    if (l mod 2=0) then
    begin
        writeln(l,' ',l+1,' ',l+2);
        exit;
    end
    else
    begin
        writeln(l+1,' ',l+2,' ',l+3);
        exit;
    end;
end;
begin
    readln(a,b);
    writeln(xuat(a,b));
end.

CONST fi = '';
      fo = '';
VAR l, r, a, b, c : int64;
FUNCTION UCLN(i,j : int64) : boolean;
 Var r : int64;
 Begin
        while i <> 0 do
                begin
                        r := j mod i;
                        j := i;
                        i := r;
                end;
        if j = 1 then UCLN := true else UCLN := false;
 End;
PROCEDURE COPRIME(l,r : int64);
 Var i, j : int64;
 Begin
        c := 0;
        i := l;
        while (i <= r) and (c = 0) do
                begin
                        a := 0;
                        j := i+1;
                        while (j <= r) and (a = 0) do
                                if UCLN(i,j) = true then
                                        begin
                                                a := i;
                                                b := j;
                                        end
                                else j := j + 1;
                        j := j + 1;
                        while (j <= r) and (c = 0) do
                                if UCLN(a,j) = false then c := j
                                else j := j + 1;
                        i := i + 1;
                end;
 End;
PROCEDURE PROCESS;
 Var f1, f2 : text;
 Begin
        assign(f1,fi); reset(f1);
        assign(f2,fo); rewrite(f2);
        readln(f1,l,r);
        COPRIME(l,r);
        if c <> 0 then write(f2,a,' ',b,' ',c)
        else write(f2,'-1');
        close(f1); close(f2);
 End;
BEGIN
        PROCESS;
END.

const
        fi='';
        fo='';
var
        f,g:text;
        a,b,c:int64;

begin
        assign(f,fi); reset(f);
        assign(g,fo); rewrite(g);
        readln(f,a,b);
        if (b-a+1>3) and (b-a<=50) then
         begin
        if a mod 2= 0 then
         begin
                writeln(g,a,' ',a+1,' ',a+2);
         end
        else
         begin
                writeln(g,a+1,' ',a+2,' ',a+3);
         end;
         end;
         if (b-a+1=3) and (a mod 2=0) then writeln(g,a,' ',a+1,' ',a+2)
         else write(g,'-1');
        close(f); close(g);
end.

var a,b:int64;
  begin
    read(a,b);
    if b-a>=3 then write(a,' ',a+1,' ',a+2)
    else write(-1);
  end.

var l,r:int64;
begin
    read(l,r);
    if (r-l>=3) and (l mod 2=0) then
        write(l,' ',l+1,' ',l+2);
    if (r-l>=3) and (l mod 2=1) then
        write(l+1,' ',l+2,' ',l+3)
    else
    begin
    if (r-l=2) and (l mod 2=0) then
        write(l,' ',l+1,' ',l+2)
    else write(-1);
    end;
end.

var a,b,c,l,r:int64;
function nod(a1,b1:int64):int64;
  begin
  while (a1>0) and (b1>0) do
     if a1>b1 then a1:=a1 mod b1
              else b1:=b1 mod a1;
  nod:=a1+b1;
  end;
begin
readln(l,r);
a:=l;
b:=l;
c:=l;
while a<=r do
 begin
 while b<=r do
  begin
  while c<=r do
   begin
   if (nod(a,b)=1) and (nod(b,c)=1) and (nod(a,c)<>1) and (a<>b) and (b<>c) and (a<>c) then begin write(a,' ',b,' ',c); halt; end;
   inc(c);
   end;
  inc(b);
  c:=l;
  end;
 inc(a);
 b:=l;
 end;
write(-1);
end.

Var s1,s2,s3,x,y,z,l,n,r:Int64;
    i,j,k:LongInt;
  Begin
    Read(l,r);
    for i:=l to r-2 do
      for j:=i+1 to r-1 do
        for k:=j+1 to r do
      begin
        x:=i;
        y:=j;
        z:=k;
        While (x<>0) and (y<>0) do
          if x>y then x:=x mod y
                 else y:=y mod x;
        s1:=x+y;
        x:=i;
        y:=j;
        While (y<>0) and (z<>0) do
          if y>z then y:=y mod z
                 else z:=z mod y;
        s2:=y+z;
        y:=j;
        z:=k;
        While(x<>0) and (z<>0) do
          if x>z then x:=x mod z
                 else z:=z mod x;
        s3:=x+3;
        if (s1=1) and (s2=1) and (s3<>1) then begin Write(i,' ',j,' ',k); exit; end;
      end;
  End.

{CodeForces #275 Div2 A}
const fin='';
      fout='';
var l,r,res1,res2,res3:qword;
    f,g:text;

begin
  assign(f,fin);reset(f);
  assign(g,fout);rewrite(g);
  read(f,l,r);
  if r-l+1 < 3 then
    begin
      write(g,-1);
      exit;
    end;
  if l mod 2 = 0 then
    begin
      res1:=l;
      res2:=l+1;
      res3:=l+2;
    end
  else
    begin
      res1:=l+1;
      res2:=l+2;
      res3:=l+3;
    end;
  write(g,res1,' ',res2,' ',res3);
  close(f); close(g);
end.

var
 i,j,l,r,n,m,k,a,b,c:int64;

function gcd(x,y:int64):int64;
begin
 while (x>0)and(y>0) do if x>y then x:=x mod y else y:=y mod x;
 gcd:=x+y;
end;

begin
 readln(l,r);
 a:=l; b:=l+1; c:=l+2;
 while a<r do
 begin
  inc(a);
  while b<r do
  begin
   inc(b);
   while c<r do
   begin
    inc(c);
    if (gcd(a,b)=1)and(gcd(b,c)=1)and(gcd(a,c)<>1) then
    begin writeln(a,' ',b,' ',c); halt; end;
   end;
  end;
 end;
 writeln(-1);
end.

uses math;
var
  l,r:int64;
begin
  read(l,r);

  if r-l<2 then begin writeln(-1); halt; end;
  if l mod 2=0 then begin write(l,' ',l+1,' ',l+2); halt; end;
  if (l mod 2=1) and (r-l>3) then begin write(l+1,' ',l+2,' ',l+3); halt; end;
  writeln(-1);
end.

var l,r,i,j,k:int64;

function kt1(a,b:int64):boolean;
var r:int64;
begin
    while b<>0 do
    begin
        r:=a mod b;
        a:=b;
        b:=r;
    end;
    exit(a=1);
end;

function kt2(a,b:int64):boolean;
var r:int64;
begin
    while b<>0 do
    begin
        r:=a mod b;
        a:=b;
        b:=r;
    end;
    exit(a<>1);
end;

begin
    readln(l,r);
    i:=l;
    j:=l+1;
    k:=l+2;
    while i<=r-2 do
    begin
        while j<=r-1 do
        begin
            while k<=r do
            begin
                if (kt1(i,j)) and (kt1(j,k)) and (kt2(i,k)) then
                begin
                    writeln(i,' ',j,' ',k);
                    exit;
                end;
                k:=k+1;
            end;
            j:=j+1;
        end;
        i:=i+1;
    end;
    writeln(-1);
end.

var
i,j,k,l,r:int64;
function gsd(a,b:longint):longint;
begin
        while (a>0)and(b>0) do
                if a>b then a:=a mod b else b:=b mod a;
        gsd:=a+b;
end;
begin
read(l,r);
i:=l;
while i<=r-2 do
begin
j:=i+1;
while j<=r-1 do
        begin
         k:=j+1;
         while k<=r do
         begin
if (gsd(i,j)=1)and(gsd(j,k)=1)and(gsd(i,k)<>1) then begin writeln(i,' ',j,' ',k);halt;end;
inc(k);
end;
inc(j);
end;
inc(i);
end;
writeln(-1);
end.

var l,r,i,n,a,b,c,j,t,u:int64;
function gcd(var a,b:int64):int64;
    var o,p:int64;
        begin
        o:=a;
        p:=b;
         while (o*p<>0) do begin
          if o>p then o:=o mod p else p:=p mod o;
         end;
         gcd:=o+p;
        end;
begin
readln(l,r);
if r-l<2 then writeln(-1) else begin
        a:=l;
        b:=a+1;
        c:=b+1;
        t:=gcd(a,b);
        u:=gcd(b,c);
        if (t<>1) and (u<>1) then begin
                                while (c<>r) do begin
                                 inc(a);
                                 inc(b);
                                 inc(c);
                                 t:=gcd(a,b);
                                 u:=gcd(b,c);
                                 if (t=1) and (u=1) then begin write(a,' ',b,' ',c); break; end;
                                writeln(-1);
                                end;
                              end
                             else
                                 writeln(a,' ',b,' ',c);
end;
end.

 var i,j,a,b,x,y,k : int64;
begin
 readln(a,b);
 k:=a;
 while 1=1 do
 begin a:=k;
 if b-a<2 then begin writeln('-1'); exit end;
 if a mod 2=0 then
   begin x:=a; y:=a+1; a:=a+2 end else begin x:=a+1; y:=a; a:=a+3 end;
 while a<=b do
   begin
    i:=y; j:=a;
    while (i<>0)and(j<>0) do
      if i>j then i:=i mod j else j:=j mod i;
    if (i+j=1) then begin
      if x>y then writeln(y,' ',x,' ',a) else writeln(x,' ',y,' ',a); exit end;
    inc(a,2);
   end;
   inc(k);
   end;
end.

var l,r:int64;
begin
read(r,l);
if l-r<2 then write(-1) else write(r,' ',r+1,' ',r+2);
end.

var i,j,t:longint;
    l,r:qword;
function UCLN(x,y:qword):qword;
var tam:qword;
begin
    while x mod y<>0 do
    begin
        tam:=x mod y;
        x:=y;
        y:=tam;
    end;
    UCLN:=y;
end;
begin
    readln(l,r);
    if (l=r) or (l+2>r) then
    begin
        writeln(-1); exit;
    end;
    for i:=0 to 48 do
        for j:=i+1 to 49 do
            if UCLN(l,l+j)=1 then
                for t:=j+1 to 50 do
                    if (UCLN(l+j,l+t)=1) and (UCLN(l,l+t)<>1) then
                    begin
                        writeln(l,' ',l+j,' ',l+t); exit;
                    end;
    writeln(-1);
end.

{CodeForces #275 Div2 A}
const fin='';
      fout='';
var l,r,res1,res2,res3:qword;
    f,g:text;

begin
  assign(f,fin);reset(f);
  assign(g,fout);rewrite(g);
  read(f,l,r);
  if r-l+1 < 3 then
    begin
      write(g,-1);
      exit;
    end;
  if l mod 2 = 0 then
    begin
      res1:=l;
      res2:=l+1;
      res3:=l+2;
    end
  else
    begin
      res1:=l+1;
      res2:=l+1;
      res3:=l+3;
    end;
  write(g,res1,' ',res2,' ',res3);
  close(f); close(g);
end.

var l, r, z: int64;
    i, j, k: byte;
function gcd(x, y: int64): boolean;
var z: int64;
begin
        while y > 0 do
        begin
                z := x mod y;
                x := y;
                y := z;
        end;
        if x = 1 then
                gcd := true
        else gcd := false;
end;
begin
        readln(l, r);
        for i := 0 to r - l - 2 do
                for j := i + 1 to r - l - 1 do
                        for k := j + 1 to r - l do
                                if gcd(i + l, j + l) and gcd(j + l, k + l) and not gcd(i + l, k + l) then
                                begin
                                        writeln(i + l, ' ', j + l, ' ', k + l);
                                        exit;
                                end;
        writeln('-1');
end.

var
l,r:int64; i:longint;
begin
 read(l,r);
 if (r-l>2)or((l-r=2)and(l mod 2 = 0)) then
  begin
   if (l mod 2 = 1) then inc(l);
   for i:=0 to 2 do
    write(i+l,' ')
  end else
    write('-1');
end.

{$mode objfpc}

const
 inputfile='';
 outputfile='';

var
 fi,fo:text;
 l,r:int64;
procedure openf;
begin
 assign(fi,inputfile);
 reset(fi);
 assign(fo,outputfile);
 rewrite(fo);
end;

procedure input;
begin
 readln(fi,l,r);
end;

function gcd(a,b:int64):int64;
var
 rr:int64;

begin
 while b<>0 do
  begin
   rr:=a mod b;
   a:=b;
   b:=rr;
  end;
 exit(a);
end;

procedure process;
begin
 if r-l<2 then
  begin
   write(fo,-1);
   exit;
  end;
 if l mod 2 = 0 then
  write(fo,l,' ',l+1,' ',l+2);
 if l mod 2 = 1 then
  begin
   if r-l=2 then
    if gcd(l,r)=1 then write(fo,l,' ',l+1,' ',l+2) else write(fo,-1);
   if r-l>2 then write(fo,l+1,' ',l+2,' ',l+3);
  end;
end;

procedure output;
begin
end;

procedure closef;
begin
 close(fi);
 close(fo);
end;

begin
 openf;
 input;
 process;
 output;
 closef;
end.

var a,b:int64;
  begin
    read(a,b);
    if b-a>3 then write(a,a+1,a+2)
    else write(-1);
  end.

uses math;
const
        tfi='';
        tfo='';

var
        fi,fo:Text;
        r,l:int64;

function ucln(x,y:int64):int64;
    begin
        if x=0 then exit(y);
        ucln:=ucln(y mod x,x);
    end;

procedure xuli;
        var i,n:longint;
        begin
            readln(fi,l,r);
            n:=r-l;
            if n>1 then
            for i:=1 to n do
                if (ucln(l,l+i)=1) and (ucln(l+i,r)=1) then
                begin
                    writeln(fo,l,' ',l+i,' ',r);
                    exit;
                end;
            writeln(fo,-1);
        end;
begin
        assign(fi,tfi);
        assign(fo,tfo);
        reset(fi);
        rewrite(fo);
        xuli;
        close(fo);
end.

uses math;
var a,b,c,cc:array [1..10000]  of longint;
i,j,l,r,z:int64;
 n,m:int64;
   procedure sort(l,r: longint);
      var
         i,j,x,y,xx: longint;
      begin
         i:=l;
         j:=r;
         x:=a[(l+r) div 2];
         xx:=b[(l+r) div 2];
         repeat
           while (a[i]<x) or ((a[i]=x) and (b[i]<xx)) do
            inc(i);
           while (x<a[j]) or ((a[j]=x) and (b[j]>xx)) do
            dec(j);
           if not(i>j) then
             begin
                y:=a[i];
                a[i]:=a[j];
                a[j]:=y;
                y:=b[i];
                b[i]:=b[j];
                b[j]:=y;
                inc(i);
                j:=j-1;
             end;
         until i>j;
         if l<j then
           sort(l,j);
         if i<r then
           sort(i,r);
      end;
      function prov(x,y:int64):boolean;
       begin
        while (x>0) and (y>0) do
         if x>y then x:=x mod y else y:=y mod x;
         if (x+y)=1 then exit(true) else exit(false);
       end;

     begin
      readln(l,r);
      i:=l;
       while (i<=r) do
        begin
         j:=l;
         while (j<=r) do
          begin
           z:=l;
            while (z<=r) do
             begin
              if (i<>j) and (i<>z) and (j<>z) then
              if (prov(i,j)) and (prov(j,z)) and (not(prov(i,z))) then
               begin
                writeln(i,' ',j,' ',z);
                halt;
                end;
                inc(Z);
             end;
             inc(j);
          end;
          inc(i);
        end;
        writeln(-1);

     end.

var a:array[1..50] of qword;
    l,r:qword;
    i,j,t:longint;
    res1,res2,res3:qword;

function ucln(a,b:qword):qword;
var du:qword;
begin
  repeat
    du:=a mod b;
    a:=b;
    b:=du;
  until b=0;
  exit(a);
end;

begin
  read(l,r);
  if r-l+1 < 3 then write(-1)
  else
    begin
      for i:=0 to r-l do a[i+1]:=l+i;
      for i:=1 to r-l+1 do
        for j:=i to r-l+1 do
          if ucln(a[i],a[j]) = 1 then
            for t:=j to r-l+1 do
              if ucln(a[j],a[t]) = 1 then
                if ucln(a[i],a[t]) <> 1 then
                  begin
                    res1:=a[i];
                    res2:=a[j];
                    res3:=a[t];
                    break
                  end;
      write(res1,' ',res2,' ',res3);
    end;
end.

var
	l,r,a,b,c:int64;
function gcd(x,y:int64):int64;
var r:int64;
begin
    if x<y then begin r:=x; x:=y; y:=r; end;
	r:=x mod y;
	while r<>0 do
	begin
	    x:=y;
		y:=r;
		r:=x mod y;
	end;
	exit(y);
end;

begin
    read(l,r);
	if r-l<=1 then begin write(-1); halt; end;
	b:=l;
	while b<=r do
	begin
	  a:=l;
	  while a<=r do
	  begin
	    c:=l;
		while c<=r do
		begin
	    if (a<>b)and(b<>c)and(a<>c)and(gcd(a,b)=1)and(gcd(b,c)=1)and(gcd(a,c)<>1) then begin write(a,' ',b,' ',c); halt; end;
		c:=c+1;
		end;
		a:=a+1;
	  end;
	  b:=b+1;
	end;
	write(-1);
end.

VAR l, r: int64;

PROCEDURE input;
VAR fi: TEXT;
BEGIN

    readln( l, r);

END;

FUNCTION UCLN(x, y: int64): int64;
BEGIN
     IF x MOD y = 0 THEN UCLN:= y ELSE UCLN:= UCLN(y, x MOD y);
END;

FUNCTION check(x, y: int64): BOOLEAN;
BEGIN
    IF ucln(x, y) = 1 THEN exit(TRUE) ELSE exit(FALSE);
END;

PROCEDURE proc;
VAR fo: TEXT;
    i, j, k: BYTE;
    m: int64;
BEGIN
    input;

    m:= r - l;
    FOR i:= 0 TO m - 2 DO
        FOR j:= i + 1 TO m - 1 DO
            FOR k:= j + 1 TO m DO
                IF check(i + l, j + l) AND check(j + l, k + l) AND NOT(check(i + l, k + l)) THEN
                    BEGIN
                        write(i + l, ' ', j + l, ' ', k + l);

                        exit;
                    END;
    write( '-1');

END;

BEGIN
    proc;
END.

{$Mode Objfpc}
Const
                                Fi              ='';//483A.inp';
                                Fo              ='';//483A.out';
Var
        L,R     :longint;
Begin
        assign(input,fi) ;reset(input)   ;
        assign(output,fo);rewrite(output);
        Readln(L,R);
        If L mod 2 = 0 then write(L,' ',L+1,' ',L+2)
        else Write(L+1,' ',L+2,' ',L+3);
End.

var i,x,a,b,c,l,r,d,kl:int64;

begin
  readln(l,r);
  if l=1 then
  BEGIN
  a:=1;
  b:=2;
  c:=3;
  if c<=r then writeln(a,' ',b,' ',c)
                         else writeln(-1)
  END
  ELSE
  BEGIN
  if l mod 2=0 then
              begin
                 a:=l;
                 b:=l+1;
                 c:=l+2;
                 if c<=r then writeln(a,' ',b,' ',c)
                         else writeln(-1)
              end
           else   begin
                a:=l;
                x:=trunc(sqrt(l));
                i:=2;
                while i<=x do
                 begin
                  if a mod i=0 then begin
                                      kl:=1;
                                      d:=i;
                                      break;
                                    end;
                  i:=i+1;
                 end;
                if kl=0 then d:=a;

                c:=a+d;
                              b:=a+2;
                if c<=r then writeln(a,' ',b,' ',c)
                        else writeln(-1);
              end;
  END;
end.

                var     l               : int64;
                        r               : int64;
                        a               : int64;
                        b               : int64;
                        c               : int64;
                function UCLN(a, b : int64): int64;
var r:int64;
Begin
  while b <> 0 do
    begin
      r := a mod b;
      a := b;
      b := r;
    end;
  UCLN := a;
End;
function ntcn(a ,b : int64): boolean;
begin
        exit(ucln(a,b)=1);
end;
                begin
                        readln(l,r);
                        if r-l+1<3 then
                        begin
                                writeln(-1);
                                halt;
                        end;
                        a:=l;
                        b:=a;
                        Repeat
                        b:=b+1;
                        c:=b+1;
                        While c<=r do
                        begin
                                if (ntcn(a,c)=false) and (ntcn(b,c)=true) then
                                begin

                                        writeln(a,' ',b,' ',c);
                                        halt;
                                end;
                                c:=c+1;
                        end;
                        if b=r then
                        begin
                                writeln(-1);
                                halt;
                        end;
                        until false;

end.

VAR i,j,u,l,r:qword;
Function nod(a,b:qword):qword;
begin
while (a>0) and (b>0) do

      if b>a then b:=b mod a
             else a:=a mod b;
    nod:=a+b;
end;
BEGIN
readln(l,r);
i:=l;
j:=i+1;
u:=j+1;
if r-l=1 then write('-1');
while i<=r-2 do begin
  while j<=r-1 do begin
    while u<=r do begin
       if (nod(i,j)=1) and (nod(i,u)<>1) and (nod(j,u)=1)   then begin
         writeln(i,' ',j,' ',u);
         break;
       end;
       if (i=r-2) and (j=r-1)  and (u=r) then begin
         write('-1');
         exit;
       end;
       inc(u);
     end;
     inc(j);
  end;
  inc(i);
end;
END.

var l,r: int64;

BEGIN
    readln(l,r);
    If r-l <2  then writeln(-1)
    Else if r-l = 2 then
    begin
        If l = 1 then writeln(-1)
        Else writeln(l, ' ',l+1, ' ',l+2);
    end

    Else
    begin
        If l mod 2 = 0 then writeln(l, ' ',l+1, ' ',l+2)
        Else writeln(l+1, ' ',l+2, ' ',l+3);
    end;
END.

var n,m,l,r:int64;
    i,j,k:longint;
function pro(n,m:int64):boolean;
 begin
   while (n>0) and (m>0) do
    if n>m then n:=n mod m else m:=m mod n;
   if (n+m)=1 then exit(true) else exit(false);
 end;
  begin
    read(l,r);
    for i:=l to r do
     for j:=i+1 to r do
      for k:=j+1 to r do
       if (pro(i,j)) and (pro(j,k)) and not(pro(i,k)) then begin writeln(i,' ',j,' ',k); halt; end;
    writeln('-1');
  end.

var l,r:int64;
begin
    readln(l,r);
    if (l=r) or (l+2>r) then writeln(-1)
    else writeln(l,' ',l+1,' ',l+2);
end.

uses math;
const
        tfi='';
        tfo='';

var
        fi,fo:Text;
        x,y:int64;

procedure xuli;
        begin
            readln(fi,x,y);
            if y-x<2 then writeln(fo,-1)
            else
            if x mod 2=0 then writeln(fo,x,' ',x+1,' ',x+2) else writeln(fo,x+1,' ',x+2,' ',x+3);
        end;
begin
        assign(fi,tfi);
        assign(fo,tfo);
        reset(fi);
        rewrite(fo);
        xuli;
        close(fo);
end.

program A4;
var
  l,r,a,b,c:int64;
begin
  readln(l,r);
  if r-l<=1
  then
    begin
      writeln('-1');
      exit;
    end;
  writeln(l,' ',l+1,' ',l+2);
end.

{$mode objfpc}

const
 inputfile='';
 outputfile='';

var
 fi,fo:text;
 l,r:int64;
procedure openf;
begin
 assign(fi,inputfile);
 reset(fi);
 assign(fo,outputfile);
 rewrite(fo);
end;

procedure input;
begin
 readln(fi,l,r);
end;

function gcd(a,b:int64):int64;
var
 rr:int64;

begin
 while b<>0 do
  begin
   rr:=a mod b;
   a:=b;
   b:=rr;
  end;
 exit(a);
end;

procedure process;
begin
 if (l=1) and (r=3) then
  begin
   write(fo,1,' ',2,' ',3);
   exit;
  end;
 if r-l<2 then
  begin
   write(fo,-1);
   exit;
  end;
 if l mod 2 = 0 then
  write(fo,l,' ',l+1,' ',l+2);
 if l mod 2 = 1 then
  begin
   if r-l=2 then
    if gcd(l,r)=1 then write(fo,l,' ',l+1,' ',l+2) else write(fo,-1);
   if r-l>2 then write(fo,l+1,' ',l+2,' ',l+3);
  end;
end;

procedure output;
begin
end;

procedure closef;
begin
 close(fi);
 close(fo);
end;

begin
 openf;
 input;
 process;
 output;
 closef;
end.

const finp='';
      fout='';
var l,r,a,b,c:int64;
procedure nhap;
var f:Text;
begin
    assign(f,finp);
    reset(f);
    read(f,l,r);
    close(f);
end;
function ucln(x,y:int64):int64;
var r:int64;
begin
    repeat
        r:=x mod y;
        x:=y;
        y:=r;
    until r=0;
    ucln:=x;
end;
procedure timso;
var i,j,k:int64;
    lc:boolean;
begin
    lc:=false;
    a:=-1; b:=-1; c:=-1;
    i:=l;
    while i<=r-1 do
        begin
            j:=r;
            while j>=i+1 do
                begin
                    k:=ucln(i,j);
                    if k<>1 then
                         begin
                             a:=i;
                             c:=j;
                             lc:=true;
                             break;
                         end;
                    dec(j);
                end;
            if lc=true then
                break;
            inc(i);
        end;
    i:=a+1;
    while i<=c-1 do
        begin
            if (a mod i<>0) and (c mod i<>0) then
                begin
                    b:=i;
                    break;
                end;
            inc(i);
        end;
end;
procedure xuat;
var f:Text;
begin
    assign(f,fout);
    rewrite(f);
    if (a<>-1) and (b<>-1) and (c<>-1) then
        write(f,a,' ',b,' ',c)
    else
        write(f,-1);
    close(f);
end;
begin
    nhap;
    timso;
    xuat;
end.

{$Mode Objfpc}
Const
                Fi              ='';//483.inp';
                Fo              ='';//483.out';
//
Var
        L,R     :int64;
Begin
        assign(input,fi) ;reset(input)   ;
        assign(output,fo);rewrite(output);
        Readln(L,R);
        If ((L-R+1)<=2) or ((L-R+1=3) and (L mod 2 = 0)) then Write(-1)
        Else
           If (L mod 2 = 0) then Write(L+1,' ',L+2,' ',L+3)
           Else Write(L,' ',L+1,' ',L+2);
End.

var a,b:int64;
  begin
    read(a,b);
    if b-a>3 then write(a,a+1,a+2)
    else write(-1);
  end.

type arr=array[1..19]of integer;
{const fi='checking.inp';
      fo='checking.out';}

var   d,c,a1,a2,a3,kq:arr;
      l,r:string;
      m,n,lg:longint;
{------------------------}
{procedure openfiles;
begin
        assign(input,fi);
        reset(input);
        assign(output,fo);
        rewrite(output);
end;}
{------------------------------}
{procedure  closefiles;
begin
        close(input);close(output);
end;}
{-------------------------}
procedure stdin;
var i:longint;
begin
        readln(l);
        r:=copy(l,pos(' ',l)+1,length(l)-pos(' ',l));
        delete(l,pos(' ',l),length(l)-pos(' ',l)+1);

        m:=length(l);
        n:=length(r);
        for i:=m downto 1 do
        d[m-i+1]:=ord(l[i])-ord('0');
        for i:=n downto 1 do
        c[n-i+1]:=ord(r[i])-ord('0');
end;
{-------------------------------------}
procedure tru;
var i:longint;
begin
        for i:=1 to n do
        begin
                kq[i]:=c[i]-d[i];
                if kq[i]<0 then
                begin
                        kq[i]:=kq[i]+10;
                        c[i+1]:=c[i+1]-1;
                end;

        end;

        lg:=n;
        if kq[n]=0 then dec(lg);
end;
{-------------------------------------}
function nhohon:boolean;
begin
       if (lg=1) and (kq[1]<3)  then exit(true);
       exit(false);
end;
{-------------------------------------------}
function nhohonbang:boolean;
var  i:longint;
begin
        for i:=n+1 downto 1 do
        if  a3[i]>c[i] then exit(false);
        exit(true);
end;
{----------------------------------------}
procedure cong(x:longint;var a:arr);
var i,nho:longint;
begin
        nho:=x;
        for i:=1 to m+1 do
        begin
                a[i]:=(d[i]+nho);
                nho:=a[i] div 10;
                a[i]:=a[i] mod 10;
        end;
end;
{-----------------------------------------}
procedure print;
var i:longint;
begin
        for i:=n downto 1 do
        write(a1[i]);
        write(' ');
        for i:=n downto 1 do
        write(a2[i]);
        write(' ');
        for i:=n downto 1 do
        write(a3[i]);
end;
{-----------------------------------------}

procedure process;
begin
        if  nhohon then
        begin
                writeln('-1');
                exit;
        end;
        if (d[1] mod 2=0) then
        begin
                cong(0,a1);
                cong(1,a2);
                cong(2,a3);
        end
        else
        begin
                cong(1,a1);
                cong(2,a2);
                cong(3,a3);
        end;

        if nhohonbang then print else writeln('-1');

end;
{------------------------------------}
BEGIN
        {openfiles; }
        stdin;
        process;
        {closefiles;}
END.

Var x1,k,x,y,l,r,n:Qword;
    i:longint;
  Begin
    Read(l,r);
    x1:=l;
    k:=1;
    While k=1 do
      begin
        inc(l);
        if l>r then begin Write(-1); exit; end;
        x:=x1;
        y:=l;
        While (x>0) and (y>0) do
          if x>y then x:=x mod y
                else y:=y mod x;
        k:=x+y;
        x:=x1;
      end;
   Write(x,' ',x+1,' ',l);
  End.

var
 i,j,l,r,n,m,k,a,b,c:int64;

function gcd(x,y:int64):int64;
begin
 while (x>0)and(y>0) do if x>y then x:=x mod y else y:=y mod x;
 gcd:=x+y;
end;

begin
 readln(l,r);
 a:=l-1; b:=l; c:=l+1;
 while a<r do
 begin
  inc(a);
  while b<r do
  begin
   inc(b);
   while c<r do
   begin
    inc(c);
    if (gcd(a,b)=1)and(gcd(b,c)=1)and(gcd(a,c)<>1) then
    begin writeln(a,' ',b,' ',c); halt; end;
   end;
  end;
 end;
 writeln(-1);
end.

var
 i,j,l,r,n,m,k,a,b,c:int64;

function gcd(x,y:int64):int64;
begin
 while (x>0)and(y>0) do if x>y then x:=x mod y else y:=y mod x;
 gcd:=x+y;
end;

begin
 readln(l,r);
 a:=l; b:=l; c:=l;
 while a<r do
 begin
  inc(a);
  while b<r do
  begin
   inc(b);
   while c<r do
   begin
    inc(c);
    if (a=b)or(a=c)or(b=c) then continue;
    if (gcd(a,b)=1)and(gcd(b,c)=1)and(gcd(a,c)<>1) then
    begin writeln(a,' ',b,' ',c); halt; end;
   end;
   c:=l;
  end;
  b:=l;
 end;
 writeln(-1);
end.

VAR i,j,u,l,r:qword;
Function nod(a,b:qword):qword;
begin
while (a>0) and (b>0) do

      if b>a then b:=b mod a
             else a:=a mod b;
    nod:=a+b;
end;
BEGIN
readln(l,r);
i:=l;
j:=i+1;
u:=j+1;
if r-l=1 then write('-1');
while i<=r-2 do begin
  while j<=r-1 do begin
    while u<=r do begin
       if (nod(i,j)=1) and (nod(i,u)<>1) and (nod(j,u)=1)   then begin
         writeln(i,' ',j,' ',u);
         exit;
       end;
       if (i=r-2) and (j=r-1)  and (u=r) then begin
         write('-1');
         exit;
       end;
       inc(u);
     end;
     inc(j);
  end;
  inc(i);
end;
END.

var n,k :Qword;
begin
read(n,k);
if k-n>1 then write(n,' ',n+1,' ',n+2) else write('-1');
end.

var
 i,j,l,r,n,m,k,a,b,c:int64;

function gcd(x,y:int64):int64;
begin
 while (x>0)and(y>0) do if x>y then x:=x mod y else y:=y mod x;
 gcd:=x+y;
end;

begin
 readln(l,r);
 a:=l-1; b:=l-1; c:=l-1;
 while a<r do
 begin
  inc(a);
  while b<r do
  begin
   inc(b);
   while c<r do
   begin
    inc(c);
    if (a<>b)and(a<>c)and(b<>c) then if (gcd(a,b)=1)and(gcd(b,c)=1)and(gcd(a,c)<>1) then
    begin writeln(a,' ',b,' ',c); halt; end;
   end;
   c:=l-1;
  end;
  b:=l-1;
 end;
 writeln(-1);
end.

uses math;
var x,y:longint;
begin
    readln(x,y);
    if (x=1) or (y=1) then
    begin
        writeln('Akshat'); exit;
    end;
    if odd(min(x,y)) then
    begin
        writeln('Akshat'); exit;
    end
    else writeln('Malvika');
end.

var r,l:qword;
begin
    readln(l,r);
    if (r=l) or (l+2>r) then writeln(-1)
    else
    begin
        if l mod 2=0 then writeln(l,' ',l+1,' ',l+2)
        else if (l+3<=r) then writeln(l+1,' ',l+2,' ',l+3);
    end;
end.

var a,b:int64;
  begin
    read(a,b);
    if b-a>=3 then write(a,' ',a+1,' ',a+2)
    else write(-1);
  end.

var a,b,c,l,r:int64;

function GCD(x,y:int64):boolean;
var z:int64;
begin
    while (y>0) do
    begin
        z:=x mod y;
        x:=y; y:=z;
    end;
    exit(x=1);
end;

begin
    read(l,r);
    a:=l; c:=a+2;
    while (a+2<r) do
    begin
        c:=a+2;
        while (c<=r) do
        begin
            b:=a+1;
            while (b<c) do
            begin
                if GCD(a,b) and GCD(b,c) and (GCD(a,c)=false) then
                begin
                    write(a,' ',b,' ',c);
                    exit;
                end;
                b:=b+1;
            end;
            c:=c+1;
        end;
        a:=a+1;
    end;
    write(-1);
end.

var i,j,t:longint;
    l,r:qword;
function UCLN(x,y:qword):qword;
var tam:qword;
begin
    while x mod y<>0 do
    begin
        tam:=x mod y;
        x:=y;
        y:=tam;
    end;
    UCLN:=y;
end;
begin
    readln(l,r);
    if (l=r) or (l+2>r) then
    begin
        writeln(-1); exit;
    end;
    for i:=0 to 48 do
        for j:=i+1 to 49 do
        begin
            if l+j>r then
            begin
                writeln(-1); exit;
            end;
            if UCLN(l,l+j)=1 then
                for t:=j+1 to 50 do
                begin
                    if l+t>r then
                    begin
                        writeln(-1); exit;
                    end;
                    if (UCLN(l+j,l+t)=1) and (UCLN(l,l+t)<>1) then
                    begin
                        writeln(l,' ',l+j,' ',l+t); exit;
                    end;
                end;
        end;
    writeln(-1);
end.

program A4;
var
  l,r,a,b,c:int64;
begin
  readln(l,r);
  if r-l<=1
  then
    begin
      writeln('-1');
      exit;
    end;
  writeln(l,' ',l+1,' ',l+2);
end.

var l,r:int64;
begin
read(r,l);
if l-r<2 then write(-1) else write(r,' ',r+1,' ',r+2);
end.

Var x1,k,x,y,l,r,n:Qword;
    i:longint;
  Begin
    Read(l,r);
    x1:=l;
    k:=1;
    While k=1 do
      begin
        inc(l);
        if l>r then begin Write(-1); exit; end;
        x:=x1;
        y:=l;
        While (x>0) and (y>0) do
          if x>y then x:=x mod y
                else y:=y mod x;
        k:=x+y;
        x:=x1+1;
        y:=l;
        While (x>0) and (y>0) do
          if x>y then x:=x mod y
                 else y:=y mod x;
        if x+y<>1 then k:=1;
        x:=x1;
      end;
   Write(x,' ',x+1,' ',l);
  End.

const
        fi='';
        fo='';
var
        f,g:text;
        a,b,c:int64;

begin
        assign(f,fi); reset(f);
        assign(g,fo); rewrite(g);
        readln(f,a,b);
        if (b-a+1>3) then
         begin
        if a mod 2= 0 then
         begin
                writeln(g,a,' ',a+1,' ',a+2);
         end
        else
         begin
                writeln(g,a+1,' ',a+2,' ',a+3);
         end;
         end;
         if (b-a+1=3) and (a mod 2=0) then writeln(g,a,' ',a+1,' ',a+2)
         else write(g,'-1');
        close(f); close(g);
end.

var
  l,r,x,a,b,a1,a2 : int64;
  f : boolean;

begin
  readln(l,r);
  if r-l+1 < 3 then begin writeln(-1); exit; end;
  x:=l+2;
  while x <= r do
    begin
      a:=x;
      b:=l;
      while (a <> 0) and (b <> 0) do
        if a > b then a:=a mod b else b:=b mod a;
      a1:=x;
      a2:=l+1;
      while (a1 <> 0) and (a2 <> 0) do
        if a1 > a2 then a1:=a1 mod a2 else a2:=a2 mod a1;
      if (a+b > 1) and (a1+a2 = 1) then begin f:=true; break; end;
      inc(x);
    end;
  if (not f) then begin writeln(-1); halt; end;
  writeln(l,' ',l+1,' ',x);
end.

{$Mode Objfpc}
Const
                                Fi              ='';//483A.inp';
                                Fo              ='';//483A.out';
Var
        L,R     :int64;
Begin
        assign(input,fi) ;reset(input)   ;
        assign(output,fo);rewrite(output);
        Readln(L,R);
        If (R-L+1)<=2 then Write(-1)
        Else
        If L mod 2 = 0 then write(L,' ',L+1,' ',L+2)
        else Write(L+1,' ',L+2,' ',L+3);
End.

var l,r,i,n,a,b,c,j,t,u,q:int64;
function gcd(var a,b:int64):int64;
    var o,p:int64;
        begin
        o:=a;
        p:=b;
         while (o*p<>0) do begin
          if o>p then o:=o mod p else p:=p mod o;
         end;
         gcd:=o+p;
        end;
begin
readln(l,r);
if r-l<2 then writeln(-1) else begin
        a:=l;
        b:=a+1;
        c:=b+1;
        t:=gcd(a,b);
        u:=gcd(b,c);
        q:=gcd(a,c);
        if (t<>1) and (u<>1) and (q=1) then begin
                                while (c<>r) do begin
                                 inc(a);
                                 inc(b);
                                 inc(c);
                                 t:=gcd(a,b);
                                 u:=gcd(b,c);
                                 if (t=1) and (u=1) then begin write(a,' ',b,' ',c); break; end;
                                writeln(-1);
                                end;
                              end
                             else
                                 writeln(a,' ',b,' ',c);
end;
end.

var l,r:qword;
    a,i,j,k:longint;
    ok:boolean;

function ucln(a,b:qword):qword;
var tg:qword;
begin
      if a=0 then ucln:=b
      else if b=0 then ucln:=a
      else
            begin
                  while a mod b <> 0 do
                        begin
                              tg:=a mod b;
                              a:=b;
                              b:=tg;
                        end;
                  ucln:=b;
            end;
end;

function kt(a,b,c:qword):boolean;
begin
      if ((a=1) and (b=1) and (c<>1))
      or ((a=1) and (b<>1) and (c=1))
      or ((a<>1) and (b=1) and (c=1))
      then kt:=true
      else kt:=false;
end;

Begin
      readln(l,r);
      a:=r-l;
      for i:=0 to a-2 do
            for j:=i+1 to a-1 do
                  for k:=j+1 to a do
                        if kt(ucln(l+i,l+j),ucln(l+i,l+k),ucln(l+j,l+k)) then
                              begin
                                    ok:=true;
                                    writeln(l+i,' ',l+j,' ',l+k);
                                    halt;
                              end;
      if not ok then writeln(-1);
end.

var a,b,c,l,r:int64;

function GCD(x,y:longint):boolean;
var z:longint;
begin
    while (y>0) do
    begin
        z:=x mod y;
        x:=y; y:=z;
    end;
    exit(x<>1);
end;

begin
    read(l,r);
    a:=l; b:=a+2;
    while (b<=r) do
    begin
        c:=a+1;
        while (c<b) do
        begin
            if GCD(a,b) or GCD(a,c) or GCD(b,c) then
            begin
                write(a,' ',c,' ',b);
                exit;
            end;
            c:=c+1;
        end;
        b:=b+1;
    end;
    write(-1);
end.

//472a
var a,b,c:int64;
begin
 read(a,b);
 if (a+2>b)then write(-1) else if(a mod 2=1)then write(-1)
   else if (a mod 2 =0)then write(a,' ',a+1,' ',a+2) else write(a+1,' ',a+2,' ',a+3);

end.

{$Mode Objfpc}
Const
                Fi              ='';//483.inp';
                Fo              ='';//483.out';
//
Var
        L,R     :int64;
Begin
        assign(input,fi) ;reset(input)   ;
        assign(output,fo);rewrite(output);
        Readln(L,R);
        If ((L-R+1)<=2) or ((L-R+1=3) and (L mod 2 = 0)) then Write(-1)
        Else
           If (L mod 2 = 0) then Write(L+1,' ',L+2,' ',L+3)
           Else Write(L,' ',L+1,' ',L+2);
End.

 var i,j,a,b,x,y,k : int64;
begin
 readln(a,b);
 k:=a;
 while 1=1 do
 begin a:=k;
 if b-a<2 then begin writeln('-1'); exit end;
 if a mod 2=0 then
   begin x:=a; y:=a+1; a:=a+2 end else begin x:=a+1; y:=a; a:=a+3 end;
 while a<=b do
   begin
    i:=y; j:=a;
    while (i<>0)and(j<>0) do
      if i>j then i:=i mod j else j:=j mod i;
    if (i+j=1) then begin
      if x>y then writeln(y,' ',x,' ',a) else writeln(x,' ',y,' ',a); exit end;
    inc(a,2);
   end;
   inc(k);
   end;
end.

program Project;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
    n, m , x, y, q1, q2 :integer;
    l, r, i, j, u :int64;

function nod(x, y:int64):int64;
begin
    if (x <> 0) then
        nod := nod(y mod x, x)
    else
        nod := y;
end;

begin
    readln(l, r);
    i := l - 1;
    while (i < r) do
    begin
        inc(i);
        j := l - 1;
        while (j < r) do
        begin
            inc(j);
            u := l - 1;
            while (u < r) do
            begin
                inc(u);
                if (i = j) or (j = u) or (u = i) then
                    continue;
                if (nod(i, j) = 1) and (nod(j, u) = 1) and (nod(i, u) <> 1) then
                begin
                    writeln(i, ' ', j, ' ', u);
                    halt(0);
                end;
            end;
            end;
   end;

    writeln('-1');
    readln;
    readln;
end.

 const  eps=1e-11;  besk=200000000000000008;
    modul=1000000007;
   label 1,2,3,4;
    type

    mas=array [-10000..10000000] of int64;   point=record x,y,z:real;end;
    zap=record p1,p2,p3 :int64;end; zap1=^zap;
    mass=array[-10000..10000000] of int64;mass1=^mass;
    var t1,t2,t3,cc,aa,bb,jj,pold,xx,yy,pp,n2,ost,ll,rr,p,q,tt,n1,h,n,kk,qq,p3,ot,t,kol,nn,p1,p2,x0,y0,s1,s2,m,s,imax,smin,dl,besk1:int64;
    shag,imin,ii,k,i1,i2,i3,i4,i5,i6,i7,j1,j2,mask,step,i,j:longint;
     sssnew:array[-10..1000] of char;
    poin:zap;
    vec:array[-100..1000] of zap;
     c1,c2:array[-1000..100000] of int64;
    fact,dd, a1,bl,br,c,a,b:array[-300000..2000000] of int64;
   sumsum,sum, scob, razr :array[-1..31,-10..110000] of longint;
     maxsum:array[-1..1010,-1..1010] of int64;
    sss, ss1,ss2:string;
    newgr,gr:array[-100..200000] of boolean;
    pole:array[-1..1500,-1..1500] of char;
    ss:array[-100..1000000] of string;
    ch: char;
    zan,marked:array[-10..1000000] of boolean;
    maxpr:array[0..100000] of string;
     pr,aanew,v0,v1,s0,t0:extended;
     z,x1,y1,y,x:array[-1..30000] of int64;
     xxx,yyy:array[-1..100000] of double;
    xxnew,per,pp2, ee,yot:double;
       flagg,flag2,flag,flag1:boolean;
    function al(x,y:real):real; var t0,t1,p,s0,s1:real;
 begin
     if (x>0)and(y>=0) then p:=arctan(y/x);
     if x<0 then p:=pi+arctan(y/x);
     if(x>0)and(y<0) then p:=2*pi+arctan(y/x);
     if x=0 then if (y>=0) then p:=pi/2 else p:=3*pi/2;
     al:=p;
 end;
  function min(x,y:int64):int64;begin min:=x;if y<x then min:=y; end;
  function max(x,y:int64):int64;begin max:=x;if y>x then max:=y; end;

  function nod(x,y:int64):int64; var z:int64;
begin   repeat  z:=x mod y;x:=y;y:=z;   until  z=0 ;  nod:=x;end;

  function evkl(a,b:int64):zap1; var d,x,y,r,q,i,j,k,x1,x2,y1,y2:int64;
  tt:zap; tt1:zap1;
begin
  if a<b then begin r:=a;a:=b;b:=r; end;
  x2:=1;x1:=0;y2:=0;y1:=1;
  while b>0 do
    begin q:=a div b; r:=a mod b; x:=x2-q*x1;y:=y2-q*y1;
          a:=b;b:=r;x2:=x1;x1:=x;y2:=y1;y1:=y;
    end;
    d:=a; x:=x2;y:=y2; tt.p1:=d;tt.p2:=x;tt.p3:=y; tt1:=@tt;
   evkl:=tt1;
end;

function degg(a:int64;k:int64):int64; var p:int64;
begin
 if k<=0 then degg:=1 else if odd(k) then degg:=(degg(a,k-1)*a) mod modul  else
   begin  p:=degg(a,k div 2); degg:=(p*p) mod modul;    end;

end;

function good(aa,bb,cc:int64):boolean;  var pp1,pp2,jj,ii,i1,i2,i3:int64;
 begin
    if (nod(aa,bb)=1)and(nod (bb,cc)=1)and(nod(aa,cc)>1)and(aa<>bb)and(bb<>cc)and(aa<>cc) then
    good:=true else good:=false;

 end;

begin

  {  assign (input,'input.txt');reset(input);
      assign (output,'output.txt'); rewrite(output);
   }
  read(p1,p2);
    t:=p2-p1;
   for i:=0 to t do for j:=0 to t do for k:=0 to t do
     begin
        t1:=p1+i; t2:=p1+j;  t3:=p1+k;
        if good(t1,t2,t3) then begin write(t1,' ',t2,' ',t3); goto 1;  end;

     end;

  write(-1);

     1:          close(output);
end.

var a,b,c,l,r:int64;

function GCD(x,y:longint):boolean;
var z:longint;
begin
    while (y>0) do
    begin
        z:=x mod y;
        x:=y; y:=z;
    end;
    exit(x=1);
end;

begin
    read(l,r);
    a:=l; c:=a+2;
    while (c<=r) do
    begin
        b:=a+1;
        while (b<c) do
        begin
            if GCD(a,b) and GCD(b,c) and (GCD(a,c)=false) then
            begin
                write(a,' ',b,' ',c);
                exit;
            end;
            b:=b+1;
        end;
        c:=c+1;
    end;
    write(-1);
end.

var l, r, z: int64;
    i, j, k: byte;
function gcd(x, y: int64): boolean;
var z: int64;
begin
        while y > 0 do
        begin
                z := x mod y;
                x := y;
                y := z;
        end;
        if x = 1 then
                gcd := true
        else gcd := false;
end;
begin
        readln(l, r);
        for i := 0 to r - l do
                for j := 0 to r - l do
                begin
                        if i = j then continue;
                        for k := 0 to r - l do
                        begin
                                if (j = k) or (i = k) then continue;
                                if gcd(i + l, j + l) and gcd(j + l, k + l) and not gcd(i + l, k + l) then
                                begin
                                        writeln(i + l, ' ', j + l, ' ', k + l);
                                        exit;
                                end;
                        end;
                end;
        writeln('-1');
end.

var q,x,y,z,c:int64;
i,j,k:longint;

function gcd(q,c:int64):int64;
begin
while ((q>0)and(c>0)) do
if q>c then q:=q mod c else c:=c mod q;
end;

begin
read(q,c);
for i:=0 to c-q do
for j:=i+1 to c-q do
for k:=j+1 to c-q do
begin
if ((gcd(q+i,q+j)=1)and(gcd(q+i,q+k)>1)and(gcd(q+j,q+k)=1)) then
begin writeln(q+i,' ',q+j,' ',q+k); exit; end;
end;
writeln('-1');
end.

var i,j,t:longint;
    l,r:qword;
function UCLN(x,y:qword):qword;
var tam:qword;
begin
    while x mod y<>0 do
    begin
        tam:=x mod y;
        x:=y;
        y:=tam;
    end;
    UCLN:=y;
end;
begin
    readln(l,r);
    if (l=r) or (l+2>r) then
    begin
        writeln(-1); exit;
    end;
    for i:=0 to 48 do
        for j:=i+1 to 49 do
            if UCLN(l,l+j)=1 then
                for t:=j+1 to 50 do
                    if (UCLN(l+j,l+t)=1) and (UCLN(l,l+t)<>1) then
                    begin
                        writeln(l,' ',l+j,' ',l+t); exit;
                    end;
end.

var r,l:qword;
begin
    readln(l,r);
    if (r=l) or (l+2>r) then writeln(-1)
    else
    begin
        if l mod 2=0 then writeln(l,' ',l+1,' ',l+2)
        else if (l+3>r) then writeln(l+1,' ',l+2,' ',l+3);
    end;
end.

uses math;
const
        tfi='';//a.inp';
        tfo='';//a.out';

var
        fi,fo:Text;
        x,y:int64;

procedure xuli;
        begin
            readln(fi,x,y);
            if y-x<2 then writeln(fo,-1)
            else writeln(fo,x,' ',x+1,' ',x+2);
        end;
begin
        assign(fi,tfi);
        assign(fo,tfo);
        reset(fi);
        rewrite(fo);
        xuli;
        close(fo);
end.