#include <bits/stdc++.h>
#define meow(args...) fprintf(stderr, args)
typedef unsigned u32;
typedef long long s64;
typedef unsigned long long u64;
template<class T1, class T2> inline bool cmin(T1 &a, const T2 &b) {return b<a?(a=b, true):false;}
template<class T1, class T2> inline bool cmax(T1 &a, const T2 &b) {return a<b?(a=b, true):false;}
template<class Type> Type read() {
	Type a;
	bool b;
	unsigned char c;
	while(c=getchar()-48, (c>9)&(c!=253));
	for(a=(b=c==253)?0:c; (c=getchar()-48)<=9; a=a*10+c);
	return b?-a:a;
}
int (*rd)()=read<int>;
//const u32 P=;
//inline u32 &inc(u32 &a, u32 b) {return (a+=b)<P?a:(a-=P);}
//inline u32 &dec(u32 &a, u32 b) {return (a-=b)&0x80000000?(a+=P):a;}
//inline u32 sum(u32 a, u32 b) {return (a+=b)<P?a:a-P;}
//inline u32 dif(u32 a, u32 b) {return (a-=b)&0x80000000?a+P:a;}
//u64 power(u64 a, int b) {
//	u64 ans=1;
//	for(; b; a=a*a%P, b/=2) if(b&1) ans=ans*a%P;
//	return ans;
//}

const int N=2e5;
int tot=3, up[60], aa[30], bb[30], cc[60];
int alloc() {
	return tot++;
}
void add(int a, int b, int c) {
	printf("+ %d %d %d\n", a, b, c);
}
void less(int a, int b, int c) {
	printf("< %d %d %d\n", a, b, c);
}
void lsh(int a, int k) {
	while(k--) add(a, a, a);
}
int main() {
	puts("5761");
	int a=0, b=1, res=2, zero=alloc(), one=alloc();
	add(a, b, one);
	less(zero, one, one);
	up[0]=one;
	for(int i=1; i<60; ++i) up[i]=alloc();
	for(int i=0; i<30; ++i) aa[i]=alloc();
	for(int i=0; i<30; ++i) bb[i]=alloc();
	for(int i=0; i<60; ++i) cc[i]=alloc();
	for(int i=0; i<30; ++i) meow("%d ", aa[i]); meow("\n");
	for(int i=0; i<30; ++i) meow("%d ", bb[i]); meow("\n");
	for(int i=0; i<60; ++i) meow("%d ", cc[i]); meow("\n");
	int t=alloc(), tmp=alloc();
	for(int i=1; i<60; ++i) add(up[i-1], up[i-1], up[i]);
	for(int i=30; i--; ) {
		add(t, up[i], tmp);
		less(a, tmp, aa[i]);
		less(aa[i], one, aa[i]);
		add(zero, aa[i], tmp);
		lsh(tmp, i);
		add(t, tmp, t);
	}
	t=alloc();
	for(int i=30; i--; ) {
		add(t, up[i], tmp);
		less(b, tmp, bb[i]);
		less(bb[i], one, bb[i]);
		add(zero, bb[i], tmp);
		lsh(tmp, i);
		add(t, tmp, t);
	}
	for(int i=0; i<30; ++i) {
		for(int j=0; j<30; ++j) {
			add(aa[i], bb[j], tmp);
			less(one, tmp, tmp);
			add(cc[i+j], tmp, cc[i+j]);
		}
	}
	for(int i=0; i<60; ++i) {
		lsh(cc[i], i);
		add(res, cc[i], res);
	}
	return 0;
}
