#include using namespace std; #define fst(t) std::get<0>(t) #define snd(t) std::get<1>(t) #define thd(t) std::get<2>(t) using ll = long long; using P = std::tuple; const int dx[8] = {-1, 1, 0, 0, -1, -1, 1, 1}, dy[8] = {0, 0, -1, 1, -1, 1, -1, 1}; const ll MOD = 17; template using Matrix = std::vector>; template Matrix mult(const Matrix& m1, const Matrix& m2){ assert(m1.size() > 0); assert(m2.size() > 0); assert(m1[0].size() == m2.size()); int n = m1.size(), m = m1[0].size(), l = m2[0].size(); Matrix res(n); for(int i=0;i Matrix expt(Matrix A, ll n){ int m = A.size(); Matrix res(m); for(int i=0;i>= 1; } return res; } int main(){ std::cin.tie(nullptr); std::ios::sync_with_stdio(false); int Q; std::cin >> Q; for(int i=0;i> N; Matrix A(4); for(int i=0;i<3;++i){ A[i].resize(4); for(int j=0;j<4;++j){ A[i][j] = j == i + 1 ? 1 : 0; } } A[3].resize(4); for(int j=0;j<4;++j){ A[3][j] = 1; } Matrix B = expt(A, N - 1); int res = B[0][3]; std::cout << res << std::endl; } }