There was once young lass called Mary,  

Whose jokes were occasionally scary.  

On this April's Fool  

Fixed limerick rules  

Allowed her to trip the unwary.



Can she fill all the lines

To work at all times?

On juggling the words

Right around two-thirds

She nearly ran out of rhymes.




-----Input-----

The input contains a single integer $a$ ($4 \le a \le 998$). Not every integer in the range is a valid input for the problem; you are guaranteed that the input will be a valid integer.


-----Output-----

Output a single number.


-----Examples-----
Input
35

Output
57

Input
57

Output
319

Input
391

Output
1723

Difficulty: interview

Starter code:

Solutions:
x = int(input())
for i in range(2, x):
   if x % i == 0:
        print(i, x // i, sep='')
        break

a = int(input())
for i in range(2, a):
	if a%i == 0:
		print(str(i) + str(a//i))
		break

a=int(input())
for i in range(2,a):
    if a%i==0:
        print(i,a//i,sep="")
        break

x = int(input())
for y in range(2, x):
  if x % y == 0:
    print(str(y) + str(x // y))
    break


n = int(input())
for i in range(2, n):
	if n%i==0:
		print(i, n//i, sep='')
		break
	


import bisect, collections
 
 
 
def solution():
    
    n = int(input().strip())

    for i in range(2, n):
        if n % i == 0:
            print(str(i)+str(n//i))
            break
    


    

def main():    
    # T = int(input().strip())
    for _ in range(1):
        solution()

def __starting_point():
    main()
__starting_point()

def main():
    import sys
    input = sys.stdin.readline

    def PrimeDecomposition(N):
        ret = {}
        n = int(N ** 0.5)
        for d in range(2, n + 1):
            while N % d == 0:
                if d not in ret:
                    ret[d] = 1
                else:
                    ret[d] += 1
                N //= d
            if N == 1:
                break
        if N != 1:
            ret[N] = 1
        return ret

    N = int(input())
    prime = PrimeDecomposition(N)
    ans = []
    for p in prime:
        for _ in range(prime[p]):
            ans.append(p)
    ans.sort()
    print(''.join(map(str, ans)))


def __starting_point():
    main()

__starting_point()

n = int(input())
for d in range(2, n):
    if n % d == 0:
        print(min(d, n // d), max(d, n // d), sep="")
        break

n=int(input())
for i in range(2,n):
	if n%i==0:
		print(str(i)+str(n//i))
		quit()

n = int(input())
for i in range(2, n):
    if n % i == 0:
        print(str(i) + str(n//i))
        break


n = int(input())
for i in range(2,n):
    if n%i == 0:
        print(i,n//i,sep='')
        break

import math as mt

MAXN = 100001
spf = [0 for i in range(MAXN)]


def sieve():
    spf[1] = 1
    for i in range(2, MAXN):
        spf[i] = i
    for i in range(4, MAXN, 2):
        spf[i] = 2

    for i in range(3, mt.ceil(mt.sqrt(MAXN))):
        if spf[i] == i:
            for j in range(i * i, MAXN, i):
                if spf[j] == j:
                    spf[j] = i


def getFactorization(x):
    ret = list()
    while x != 1:
        ret.append(spf[x])
        x = x // spf[x]

    return ret


sieve()
x = int(input())
p = getFactorization(x)
for i in sorted(p):
    print(i, end="")
print()


def primfacs(n):
   i = 2
   primfac = []
   while i * i <= n:
       while n % i == 0:
           primfac.append(i)
           n = n / i
       i = i + 1
   if n > 1:
       primfac.append(n)
   return primfac
nums = list(map(str,primfacs(int(input()))))
print(int(float("".join(nums))))


n = int(input())
for i in range(2, n + 1):
	if n % i == 0:
		print(str(i) + str(n // i))
		break

# Generated by powerful Codeforces Tool
# Author: 2014CAIS01
# Time: 2020-04-01 22:35:21

def main():
    n = int(input())
    for i in range(2, n):
        if n % i == 0:
            print(str(i) + str(n // i))
            return

def __starting_point():
    main()

__starting_point()

a=int(input())
for i in range(2,a):
    if(a%i==0):
        print(str(int(i))+str(a//i))
        break


N = int(input())
for i in range(2,N):
    if N%i == 0:
        print(str(i)+str(N//i))
        return



n = int(input())
l = []

i = 2
while n!=1:
    if n%i==0:
        while n%i==0:
            n/=i
            l.append(str(i))
    else:
        i+=1

print("".join(l))


a = int(input())

for x in range(2, a + 1):
    if a % x == 0:
        print(x, a // x, sep = '')
        break

n = int(input())
k = 0
for i in range(2, 1000):
    if n % i == 0:
        print(i, end ='')
        print(n // i)
        break


def fact(x):
	l = []
	i = 2
	while i * i <= x:
		while x % i == 0:
			x //= i
			l.append(i)
		i += 1
	if x != 1:
		l.append(x)
	return l
n = int(input())
print(*fact(n), sep='')

a = int(input())
for i in range(2, a):
    if a % i != 0:
        continue
    print(i, a // i, sep='')
    break


n = int(input())
i = 2
ans = -1
while i * i <= n:
    if n % i == 0:
        ans = i
        break
    i += 1
print(str(ans) + str(n // ans))

a=int(input())

for i in range(2,a):
    if a%i==0:
        print(i,end="")
        print(a//i)
        break


from math import sqrt
n=int(input())
for i in range(2,int(sqrt(n))+1):
    if n%i==0:
        print(i,end="")
        print(n//i)
        break

a = int(input())

for i in range(2, a + 1):
    if a % i == 0:
        print(i, a//i, sep = "")
        break

def prime_factor(n):
    factors = []
    i = 2
    while i * i <= n:
        while n % i == 0:
            factors.append(i)
            n //= i
        i += 1
    if n != 1:
        factors.append(n)
    return factors

a = int(input())
print(''.join(map(str, prime_factor(a))))

a=int(input())

for i in range(2,int(a**0.5)+1):
	if a%i==0:
		print(i,end="")
		print(a//i)
		break

n = int(input())

def SieveOfEratosthenes(n): 
      
    # Create a boolean array "prime[0..n]" and initialize 
    # all entries it as true. A value in prime[i] will 
    # finally be false if i is Not a prime, else true. 
    prime = [True for i in range(n + 1)] 
    p = 2
    while (p * p <= n): 
          
        # If prime[p] is not changed, then it is a prime 
        if (prime[p] == True): 
              
            # Update all multiples of p 
            for i in range(p * 2, n + 1, p): 
                prime[i] = False
        p += 1
    prime[0]= False
    prime[1]= False
    res = []
    # Print all prime numbers 
    for p in range(n + 1): 
        if prime[p]: 
            res.append(p)

    return res


primes = SieveOfEratosthenes(1000)
pset = set(primes)


m1 = None
m2 = None
for p in primes:
    if n%p==0:
        e = n//p
        if e in pset:
            m1, m2 = p,e
            break

res = ''
if m1 is not None and m2 is not None:
    if m1>m2:
        m1, m2 = m2,m1
    
    res+=str(m1)+str(m2)

print(res)





a=int(input())
for i in range(2,a):
	if a%i==0:
		print(str(i)+str(a//i))
		break

a = int(input())
for i in range(2, a-1):
    if a % i == 0:
        print(str(i) + str(a//i))
        break


n=int(input())
x=2
while n%x>0:
    x+=1
print("{}{}".format(x,n//x))

N = int(input())
for i in range(2, N + 1):
    if N % i == 0:
        print(str(i)+str(N//i))
        return

# Hope the best for Ravens member


s = int(input())

for i in range(2, s + 1):
    if s % i == 0:
        print(str(i), str(s // i), sep='')
        break


x = int(input())
for i in range(2, x):
    if x % i == 0:
        print(i, x // i, sep = '')
        break

n=int(input())
s=''
for i in range(int(n**0.5),0,-1):
    if n%i==0:
        s=s+str(i)+str(n//i)
        break
print(s)


a = int(input())
for i in range(2, a//2 + 1):
    b = a / i
    if b.is_integer():
        print(str(i) + str(int(b)))
        break



p = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

s = int(input())
a = 1
for i in p:
    if s%i==0:
        a = i
        break
print(str(a)+str(s//a))

x=int(input())
for i in range(2,x):
    if x%i==0:
        print(str(i)+str(x//i))
        break
    else:
        pass


n = int(input())
for i in range(2,999):
    if n % i == 0:
        print(i, n//i, sep='')
        break


a = int(input())
x = 2
while x**2 <= a:
	while a%x == 0:
		print(x, end = "")
		a //= x
	x += 1
if a > 1: print(a, end = "")
print()


n=int(input())
c=0
for i in range(2,n):
    if n//i==n/i:
        c=1
        print(str(i)+str(n//i))
        break
if c==0:
    print(str(1)+str(n))