模拟。

#include<bits/stdc++.h>
#define int long long
#define double long double
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef long long ll;
typedef pair<int,int> PII;
const int N=3e5+10;
const int M=1e3+10;
int mod=1e9+7;
int a[N];

void solve(){
    int n,q;cin>>n>>q;
    string s;cin>>s;
    s=' '+s;
    vector<int>nx(n+10);
    for(int i=1;i<=n;i++) nx[i]=1;
    while(q--){
        int l,r;cin>>l>>r;
        int pos=1;
        for(int i=1;i<=n;i++){
            if(pos>=l){
                if(pos+nx[i]-1<=r){
                    pos+=nx[i];
                    nx[i]*=2;
                }else{
                    int len=r-pos+1;
                    pos+=nx[i];
                    nx[i]+=len;
                    break;
                }
            }else{
                if(pos+nx[i]-1>=r){
                    nx[i]+=r-l+1;
                    break;
                }else if(pos+nx[i]-1>=l){
                    int len=pos+nx[i]-1-l+1;
                    pos+=nx[i];
                    nx[i]+=len;
                } else pos+=nx[i];
            }
        }
        // break;
    } 
    for(int i=1;i<=n;i++){
        for(int j=1;j<=nx[i];j++) cout<<s[i];
    }
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int _;
    _=1;
    //cin>>_;
    while(_--){
        solve();
    }
}