#include using namespace std; inline int read() { int x=0,f=1;char ch=getchar(); while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();} return x*f; } #define int long long #ifdef OIPRINT #define PRINT_VALUE(v){cout<<"[DEBUG]: "<<#v<<" :"<<(v)<b?a:b; } const int MAX_N = 1e5+5,MAX_K=17; int n,m,s[MAX_N][MAX_K],l[MAX_N]; signed main(){ // cin.sync_with_stdio(false); // cin.tie(0); // cin>>n>>m; n=read(); m=read(); PRINT_VALUE(n); PRINT_VALUE(m); l[1]=0; // for(int i=2;i<=n;i++){ // l[i]=l[i/2]+1; // } for(int i=1;i<=n;i++){ // cin>>s[i][0]; s[i][0]=read(); PRINT_VALUE(s[i][0]); if(i!=1)l[i]=l[i/2]+1; } int k=l[n]+1; for(int j=1;j<=k;j++){ for(int i=1;i-1+(1<>le>>r; le=read(); r=read(); PRINT_VALUE(le-r+1); int j=l[r-le+1]; PRINT_VALUE(le); PRINT_VALUE(r); PRINT_VALUE(j); // PRINT_VALUE(s[le][j]); // PRINT_VALUE(s[r-(1<