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.


-----Input-----

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


-----Output-----

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.


-----Examples-----
Input
2 4

Output
2 3 4

Input
10 11

Output
-1

Input
900000000000000009 900000000000000029

Output
900000000000000009 900000000000000010 900000000000000021



-----Note-----

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

Difficulty: interview

Starter code:

Solutions:
from sys import stdin
from fractions import gcd
lines = list([_f for _f in stdin.read().split('\n') if _f])

def parseline(line):
	return list(map(int, line.split()))

lines = list(map(parseline, lines))

l, r = lines[0]

for a in range(l, r+1):
	for b in range(a, r+1):
		for c in range(b, r + 1):
			if gcd(a, b) == gcd(b, c) == 1 != gcd(a, c):
				print(a, b, c)
				return
print(-1)


def NOD(x, y):
    while (y != 0):
        x = x % y
        x, y = y, x
    return x
def main():
    l, r = map(int, input().split())
    for a in range(l, r - 1):
        for b in range(a, r):
            for c in range(b, r + 1):
                if NOD(a, b) == 1 and NOD(b, c) == 1 and NOD(a, c) != 1:
                    print(a, b, c)
                    return
    print(-1)
main()

__author__ = "zabidon"

l, r = map(int, input().split())

def alg_evk(a,b):
    while(a%b):
        b, a = a % b, b

    return b

found = False
for a in range(r+1)[l:]:
    if found:
        break
    for b in range(r+1)[l:]:
        if found:
            break
        if alg_evk(a,b) != 1:
            continue
        for c in range(r+1)[l:]:
            if a<b<c:
                if alg_evk(b,c) == 1 and alg_evk(a,c) != 1:
                    found = True
                    result = (a, b, c)
                    break

if(found):
    print("{} {} {}".format(result[0], result[1], result[2]))
else:
    print(-1)

import sys

def gcd(a, b):
    return a if b == 0 else gcd(b, a % b)

l, r = list(map(int, input().split()))
for a in range(l, r-1):
    for b in range(a+1, r):
        for c in range(b+1, r+1):
            if gcd(a, b) == gcd(b, c) == 1 and gcd(a, c) != 1:
                print(a, b, c)
                return
print(-1)


def nod(x, y):
    while min(x, y) > 0 and x != y:
        if x > y:
            x = x % y
        else:
            y = y % x
    return max(x, y)
def is_me_right(left, right):
    for a in range(l, r - 1):
        for b in range(a + 1, r):
            for c in range(b + 1, r + 1):
                if (nod(a, b) == 1) and (nod(b, c) == 1) and (nod(a, c) != 1):
                    return True, a, b, c
    return False, 1, 1, 1
l, r = list(map(int, input().split()))
imr, a, b, c = is_me_right(l, r)
if imr:
    print(a, b, c)
else:
    print(-1)

import math

l, r = [int(x)for x in input().split(' ')]

if r - l < 2:
    print(-1)
    quit()

def gcd(a, b):
    while b:
        a, b = b, a%b
    return a

for a in range(l, r + 1):
    for b in range(a + 1, r + 1):
        for c in range(b + 1, r + 1):
            if gcd(a, c) != 1 and gcd(b, c) == 1:
                print(a, b, c)
                quit()

print(-1)


def gcd(a, b):
    rem = 0
    while b != 0:
        rem = a%b
        a = b
        b = rem
    return a


a, b = map(int, input().split())
if b-a == 1:
    print (-1)
else:   
    found = False
    for i in range(a, b+1):
        for j in range(i+1, b+1):
            for k in range(j+1, b+1):
                if gcd(i, j) == 1 and gcd(j, k) == 1 and gcd(i, k) != 1:
                    found = True
                    print (i, j, k)
                    break
            if found:
                break
        if found:
            break
    if not found:
        print (-1)

def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a%b)

def isCoprime(a,b):
	if gcd(a,b) == 1:
		return True
	else:
		return False

def main():
	(l,r) = map(int, input().split())
	for a in range(l,r-1):
		for b in range(a+1,r):
			if isCoprime(a,b)==True:
				for c in range(b+1,r+1):
					if isCoprime(b,c)==True:
						if isCoprime(a,c) == False:
							print(a,b,c)
							return
	print(-1)
	return

def __starting_point():
	main()
__starting_point()

def gcd(a, b):
    if(a == 0 or b == 0): return a + b
    else: return gcd(b, a % b);
l, r = list(map(int, input().split()))

r = r + 1
for a in range(l, r):
    for b in range(a + 1, r):
        for c in range(b + 1, r):
            if(gcd(a, b) == 1 and gcd(b, c) == 1 and gcd(a, c) != 1):
                print(str(a) + " " + str(b) + " " + str(c))
                return

print(-1)


from fractions import gcd
def checkok(a, b, c):
    if gcd(a, b) == 1 and gcd(b, c) == 1 and gcd(a, c)!= 1:
        return True
    return False

mark = False
l, r = list(map(int, input().split(' ')))
for i in range(l, r+1):
    for j in range(i+1, r+1):
        for k in range(j+1, r+1):
            if checkok(i, j, k) and not mark:
                print(i, j, k)
                mark = True

if not mark:
    print(-1)