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

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.

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.

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.

{$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.

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
    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.

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.

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.

 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.

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.

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.

{$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}
{$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.

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.

{$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;
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.

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.

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, 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.

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,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: 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.

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.

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.

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
  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.

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+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
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,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.

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 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, 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 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
     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
     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.

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);

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

if r-l<2 then writeln(-1)
         else writeln(l,' ',l+1,' ',l+2);
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.

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;
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 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: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.

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
 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: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.

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.

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.

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     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.

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.

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.

{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.

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.

{$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.

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.