#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MOD = 1145141923;
int q;
const int MAXN = 1e7+10;
int dp[MAXN];
int dpmin[700];
int sum[MAXN];
int qpow(int a,int n){
int res=1;
while(n>0){
if(n&1){
res = res*a%MOD;
}
a = a*a%MOD;
n>>=1;
}
return res;
}
int dfs(int n){
if(n==1){
return 0;
}
if(n<MAXN && dp[n]!=-1){
return dp[n];
}
int res;
if(n%2==0){
res = dfs(n/2)+1;
}else{
res = dfs(3*n+1)+1;
}
if(n<MAXN){
dp[n]=res;
}
return res;
}
inline void run(){
cin>>q;
memset(dp,-1,sizeof(dp));
for(int i=0;i<=700;i++){
dpmin[i]=INT_MAX;
}
for(int i=1;i<=1e7;i++){
dfs(i);
}
for(int i=1;i<MAXN;i++){
int val = dp[i];
if(val<700) dpmin[val]=min(dpmin[val],i);
}
for(int i=698;i>=0;i--){
dpmin[i]=min(dpmin[i],dpmin[i+1]);
}
sum[0]=1;
sum[1]=1;
for(int i=2;i<=1e7;i++){
sum[i]=sum[i-1]*dp[i]%MOD;
}
while(q--){
int op;
cin>>op;
if(op==1){
int x;
cin>>x;
cout<<dpmin[x]<<'\n';
}else{
int l,r;
cin>>l>>r;
cout<<(sum[r]%MOD*qpow(sum[l-1],MOD-2))%MOD<<'\n';
}
}
return ;
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int T=1;
while(T--){
run();
}
return 0;
}