// compile: make data
// run: ./data < data.in
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#ifdef LOCAL
#include <debug/codeforces.h>
#define debug(x...) _debug_print(#x, x);
#define Debug(x...) _debug_print_format(#x, x);
std::ifstream terminal("/dev/tty");
#define PP cerr<<"\033[1;30mpause...\e[0m",terminal.ignore();
#else
#define debug(x...)
#define Debug(x...)
#define PP
#endif
template<typename...Args> void print_(Args...args){((cout<<args<<" "),...)<<endl;}
#define VI vector<int>
#define VII vector<vector<int>>
#define VIII vector<vector<vector<int>>>
#define rep(i,a,b) for(int i=(a);i<(int)(b);++i)
#define sz(v) ((int)(v).size())
#define print(...) print_(__VA_ARGS__);
#define FIND(a, x) ((find(a.begin(),a.end(),(x))!=a.end())?1:0)
#define cmin(x,...) x=min({(x), __VA_ARGS__})
#define cmax(x,...) x=max({(x), __VA_ARGS__})
#define INTMAX (int)(9223372036854775807)
#define INF (int)(1152921504606846976)
#define NaN (int)(0x8b88e1d0595d51d1)
#define double long double
#define int long long
#define uint unsigned long long
#define MAXN 200010
#define P 1000000007
namespace math {
struct matrix {
vector<vector<int>> val;
int row, col;
int modp;
matrix(int r, int c, int m = NaN) : row(r), col(c), modp(m) {
val.resize(row, vector<int>(col, 0));
}
matrix operator*(const matrix &rhs) const {
auto lhs = *this;
matrix res(lhs.row, rhs.col, modp);
rep(i, 0, lhs.row) {
rep(j, 0, rhs.col) {
rep(k, 0, lhs.col) {
res.val[i][j] += lhs.val[i][k] * rhs.val[k][j];
if (modp != NaN) res.val[i][j] %= modp;
}
}
}
return res;
}
matrix pow(const int N) {
assert(row == col);
if (N == 0) {
matrix res(row, col, modp);
rep(i, 0, row) res.val[i][i] = 1;
return res;
}
if (N == 1) return *this;
matrix block = this->pow(N >> 1);
if (N & 1) return block * block * *this;
else return block * block;
}
};
}
int32_t main() {
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
int n; cin >> n;
math::matrix A(6, 6, P), init(1, 6, P);
A.val = {
{0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 1},
{0, 0, 1, 0, 0, 1},
{0, 0, 0, 1, 0, 1},
{0, 0, 0, 0, 1, 1}
};
init.val = {
{1, 1, 2, 4, 8, 16}
};
A = A.pow(n);
auto ans = init * A;
cout << ans.val[0][0] << endl;
return 0;
}
Mxbetcasino, un casino más para la lista! Ya veremos si vale la pena. A ver si la pasamos bien y ganamos algo. Visita mxbetcasino.
I’m on the hunt for a killer sicbo online experience! If sicbogames.com has what I’m looking for, then I’m stay. You can find it by going here sicbo online.
Yo, check out leavenk88! Heard some buzz about it. Anyone tried it out? Lemme know if it’s worth my time and wallet!
Honestly, this is the smoothest login experience I have had in a while. The app is super responsive and I didn’t face any lag. Definitely a solid choice for anyone looking for a reliable platform. Check out 999dbloginapp for more info.
Finally found a spot that actually pays out on time. The interface is clean and not cluttered with useless ads. I’m really enjoying my time here so far. Visit jjjwin today.
Finally a site that doesn’t lag during peak hours. The login process is quick and easy. Glad I found minion178login.
Honestly the best experience I have had in a while. The games are diverse and everything just works without any lag. Highly recommend iddragon99 for anyone looking for some action.
The odds here are actually decent compared to other sites I have used. The payout process is quick and transparent too. Definitely trust bd17777bet for your bets.
Really impressed with the security and transparency of this platform. It feels safe and the withdrawal process is seamless. Give idmpoasia88 a try
The app interface is super smooth and the login process is a breeze. I really love how fast the games load. Definitely a great choice for anyone looking for a reliable platform. Check out 666jililoginapp