#include<cstdio>
#include<cstring>
#include<iostream>
#include<vector>
#include<queue>
#include<string>
#include<algorithm>
using namespace std;
typedef long long LL;
#define inf 0x3f3f3f3f
#define mem(a,x) memset(a,x,sizeof a);
const int MAXN=1002,N=7;
int n,k,a[MAXN][MAXN],b[MAXN][MAXN],ret[MAXN][MAXN];
struct Matrix{
int a[N][N];
void init(){
memset(a,0,sizeof a);
}
void unit(){
memset(a,0,sizeof a);
for(int i=0;i<N;i++)
a[i][i]=1;
}
};
Matrix multiply(Matrix x,Matrix y){//矩阵乘
Matrix rst;
rst.init();
for(int i=0;i<