#include #include #include #include #include #include #include using namespace std; #define MOD 1000000007 #define N_MAX 2000002 typedef long long ll; typedef pair P; ll inv[N_MAX],fac[N_MAX],finv[N_MAX]; void init(){ fac[0]=fac[1]=1; finv[0]=finv[1]=1; inv[1]=1; for(int i=2;i> d >> l >> r >> k; int dl, dr; for(int i = 0; i < 30; i++){ if(l&(1< dl){ cout << 0 << endl; return 0; } if(lca < 0){ cout << 0 << endl; return 0; } ll ans = 1; for(int i = 0; i < d; i++){ ans *= fac[1<