from sys import stdin,stdout
input = stdin.readline
def main():
t = 1
for z in range(t):
n = int(input())
n2 = n
maxn = 10**18*5
global ans2
global ans
ans = 0
ans2 = []
ans2 += [str(n) + " ^ " + str(n)]
ans += 1
for i in range(40):
ans2 += [str(n2) +" + " + str(n2)]
ans += 1
n2 <<= 1
if n2*2 >= maxn:
break
num = bin(n)[2:]
num2 = 1<<(len(num)-1)
y = (num2 * n) ^ n
ans2 += [str(num2 * n) +" ^ " + str(n)]
ans += 1
n2 = y
for i in range(40):
ans2 += [str(n2) +" + " + str(n2)]
ans += 1
n2 <<= 1
if n2*2 >= maxn:
break
def f(base,num):
global ans2,ans
number = 0
res = 0
while(num):
if num & 1:
ans2 += [str(res) +" + " + str(base * (1<<number))]
ans += 1
res += base * (1<<number)
number += 1
num >>= 1
def gcdExtended(a, b):
if a == 0:
return b, 0, 1
gcd, x1, y1 = gcdExtended(b % a, a)
x = y1 - (b//a) * x1
y = x1
return gcd, x, y
a = 0
b = 0
temp,a,b = gcdExtended(n, y)
b = -b
while a < 0 or b < 0:
a,b = a+y,b+n
if b % 2 != 0:
a,b = a+y,b+n
f(n,a)
f(y,b)
ans += 1
print(ans)
print("\n".join(ans2))
print(a*n,"^",b*y)
main()
938. Range Sum of BST | 147. Insertion Sort List |
310. Minimum Height Trees | 2110. Number of Smooth Descent Periods of a Stock |
2109. Adding Spaces to a String | 2108. Find First Palindromic String in the Array |
394. Decode String | 902. Numbers At Most N Given Digit Set |
221. Maximal Square | 1200. Minimum Absolute Difference |
1619B - Squares and Cubes | 1619A - Square String |
1629B - GCD Arrays | 1629A - Download More RAM |
1629C - Meximum Array | 1629D - Peculiar Movie Preferences |
1629E - Grid Xor | 1629F1 - Game on Sum (Easy Version) |
2148. Count Elements With Strictly Smaller and Greater Elements | 2149. Rearrange Array Elements by Sign |
2150. Find All Lonely Numbers in the Array | 2151. Maximum Good People Based on Statements |
2144. Minimum Cost of Buying Candies With Discount | Non empty subsets |
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |
1328A - Divisibility Problem | 339A - Helpful Maths |