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

#define int long long

#define rep(i,n) for(int i=0;i<(n);i++)
#define pb push_back
#define all(v) (v).begin(),(v).end()
#define fi first
#define se second
typedef vector<int>vint;
typedef pair<int,int>pint;
typedef vector<pint>vpint;

template<typename A,typename B>inline void chmin(A &a,B b){if(a>b)a=b;}
template<typename A,typename B>inline void chmax(A &a,B b){if(a<b)a=b;}

int N,Q;
int X[111111],Y[111111];

const int mod=1000000007;

signed main(){
    scanf("%lld%lld",&N,&Q);

    rep(i,Q){
        char c;
        int k;
        scanf(" %c%lld",&c,&k);
        if(c=='x'){
            scanf("%lld",&X[k]);
        }
        else if(c=='y'){
            scanf("%lld",&Y[k]);
        }
        else{
            int a=1,b=1;
            for(int j=0;j<k;j++){
                a=(X[j]*b%mod*b+a)%mod;
                b=(Y[j]*b+1)%mod;
            }
            printf("%lld\n",a);
        }
    }
    return 0;
}