#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; }