const int maxn = 1e4+5;
const ll mod=1e9+6;

struct mat
{
    ll m[maxn][maxn];
}unit;
void init() //初始化
{
    for(int i=1;i<maxn;i++)
    {
        unit.m[i][i]=1;
    }
}

mat matmul(mat a,mat b) //定义矩阵的乘法
{
    mat ans;
    ll tmp =0;
    for(int i=1;i<maxn;i++)
    {
        for(int j=1;j<maxn;j++)
        {
            tmp=0;
            for(int k=1;k<maxn;k++)
            {
                tmp=(tmp + a.m[i][k] * b.m[k][j])%mod;
            }
            ans.m[i][j]=tmp;
        }
    }
    return ans;
}