///****In the name of ALLAH, most Gracious, most Compassionate****//

#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair <int, int> pii;

#define ALL(a) a.begin(), a.end()
#define FastIO ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
#define IN freopen("input.txt","r+",stdin)
#define OUT freopen("output.txt","w+",stdout)

#define DBG(a) cerr<< "line "<<__LINE__ <<" : "<< #a <<" --> "<<(a)<<endl
#define NL cout<<endl

template < class T1,class T2>
ostream &operator <<(ostream &os,const pair < T1,T2 > &p)
{
    os<<"{"<<p.first<<","<<p.second<<"}";
    return os;
}

const int N=3e5+5;
const int oo=1e9+7;

int now  =3;

const int LOG = 61;
int paw[LOG];
int ZERO ;
int ONE ;

ll A[N];

void ask_smaller(int i,int j,int k) /// a[k] = a[i]< a[j]
{
    cout<<"< "<<i<<" "<<j<<" "<<k<<"\n";
    A[k] = A[i] < A[j];
}
void ask_add(int i,int j,int k) /// a[k] = a[i] + a[j]
{
    cout<<"+ "<<i<<" "<<j<<" "<<k<<"\n";
    A[k] =A[i]  + A[j];
    assert(A[k] >= 0 );
}

int new_idx()
{
//    assert(A[now] == 0);
    return  now++;
}

int is_smaller(int i,int j) /// a[i] < a[j]
{
    int res = new_idx();
    ask_smaller(i,j,res);
    return res;
}
int add(int i,int j)/// a[i] + a[j];
{
    int res = new_idx();
    ask_add(i,j,res);
    return res;
}

int shift(int i,int p) /// a[i] << p   , p>=0
{
    while(p--)
    {
        ask_add(i,i,i);
    }
    return i;
}

int subtract(int i,int j) /// a[i] - a[j]
{
    int x = add(i,ONE);
    int y = add(ZERO , j);

    int ret = new_idx();

    for(int p = LOG - 1;p>=0;p--)
    {
        int jog = add(y , paw[p]);
        int jog_hobe = shift( is_smaller(jog , x) , p);
        ask_add(y,jog_hobe , y);
        ask_add(ret,jog_hobe , ret);
    }
    return ret;
}
int is_zero(int i) /// a[i] == 0
{
    return is_smaller(i , ONE );
}
int ternary(int i,int j) /// a[i] ? a[j] : 0
{
    int biyog = is_zero(i);
    biyog = shift(biyog , 60);
    return subtract(j, biyog );
}
int bpaw[LOG];
int32_t main()
{
    FastIO;
//    OUT;
    cout<<"64757\n";
//    for(int n=0;n<=10;n++)
//
//    for(int m=0;m<=10;m++) {
//    ll n,m;
//    cin>>n>>m;
////    memset(A,  0 , sizeof A);
//    A[0] = n;
//    A[1] = m;

    now = 3;

    ZERO = new_idx();
    int sum = add(0,1);
    ONE = paw[0] = is_smaller(ZERO , sum);
    for(int i=1;i<LOG ; i++)
    {
        paw[i] = add(paw[i-1] , paw[i-1] );
    }
    bpaw[0] = 1;
    for(int i=1;i<30;i++)
    {
        bpaw[i] = add(bpaw[i-1] , bpaw[i-1]);
    }
    int a = 0;
    int ans = 2;
    ask_add(a,ONE , a);

    int biyojjo = new_idx();
//    DBG(A[a]);
//    DBG(bpaw);
//    for(int i=0;i<30;i++)
//        cout<<A[bpaw[i]]<<" ";
//    NL;

    for(int p=30-1;p>=0;p--)
    {
//        DBG(p);
//        DBG(A[ans]);
        int bit = is_smaller(add(biyojjo ,paw[p] ) , a);
//        DBG(A[bit]);
        int ans_jog = ternary(bit , bpaw[p]);
//        DBG(A[ans_jog]);
        ask_add( ans , ans_jog , ans);
        int jog_hobe= shift(bit , p);
        ask_add(biyojjo , jog_hobe , biyojjo);

//        DBG(A[ans]);

    }

//    DBG(n);
//    DBG(m);
//    NL;
//
//    assert(A[2] == n *m);
//    }
}


Measured memory_bytes: 3644