x = int(input()) def make_divisors(n): divisors = [] for i in range(1, int(n**0.5)+1): if n % i == 0: divisors.append(i) if i != n // i: divisors.append(n//i) #divisors.sort(reverse=True) return divisors l = [10**18]* (x//2) for a in reversed(range(1, x//2+1)): b = x - a if abs(a-b) >= 1500: break l[a-1] = abs(a-len(make_divisors(a))-b+len(make_divisors(b))) #print(l) min_ = min(l) anss = [] for i in range(len(l)): if l[i] == min_: anss.append(i+1) if i+1 != x-(i+1): anss.append(x-(i+1)) anss.sort() for i in range(len(anss)): print(anss[i], x-anss[i])