#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // C++ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,j,k) for(int i=(int)j;i<(int)k;i++) #define ll long long #define Sort(v) sort(all(v)) #define INF 1000000000 #define END return 0 #define pb push_back #define se second #define fi first #define pb push_back #define all(v) (v).begin() , (v).end() #define MP make_pair #define MOD 1000000007LL; using namespace std; int day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int main(){ int n,m,p,q; cin>>n>>m>>p>>q; p--; //1-indexを0-indexに vector fool(12,m);//最初は全てm枚落ちるものとしておく rep(i,0,q){ fool[p+i]*=2;//風の強い期間は2倍する } int i; for(i=0;n>0;i++){ n-=fool[i%12];//ひたすら引いていく } cout<