#include #include #include #include #include #include using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(int i=0; i=0; i--) using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); i64 N, M; cin >> N >> M; vector> T; i64 cycleTime = 1; rep(i,N) cycleTime *= 12; i64 cycleTime3 = 1; rep(i,N) cycleTime3 *= 3; i64 cycleTime4 = 1; rep(i,N) cycleTime4 *= 4; i64 cycleTime6 = 1; rep(i,N) cycleTime6 *= 6; using Modint = atcoder::modint; Modint::set_mod(cycleTime3); i64 MxInv = Modint(cycleTime4).inv().val(); { vector t3u(16), t4u(16), t6u(16); t4u[1] = 4; t4u[2] = 4; for(int i=3; i= M+3) ans += 1; if(T[l].second + cycleTime - T[r-1].second >= M+3) ans += 1; l = r; } cout << ans << endl; return 0; }