#include "Memory_lib.h"
#include<bits/stdc++.h>
using namespace std;
int Encode(int phase,int sz,int ind,int last){return (phase-1)+(sz<<7)+(ind<<14)+(last<<21);}
int Memory(int n, int M) {
int phase=M%(1<<7)+1;
int sz=(M>>7)%(1<<7);
int ind=(M>>14)%(1<<7);
int last=(M>>21)%2;
if(phase>n)return -1;
if(ind>=n){
if(sz!=0)return -2;
return Encode(phase+1,0,0,0);
}
else{
char c=Get(ind+1);
if(c=='['||c=='<'){
int last1=last;
if(sz+1==phase)last1=(c=='<');
return Encode(phase,sz+1,ind+1,last1);
}
else{
if(sz==0)return -2;
if(sz==phase&&((c==']')!=(last==0)))return -2;
return Encode(phase,sz-1,ind+1,last);
}
}
}