prog.cpp: In function ‘std::vector<std::vector<int> > mult(std::vector<std::vector<int> >&, std::vector<std::vector<int> >&, int)’:
prog.cpp:34:24: error: ‘k’ was not declared in this scope
res[i][j] +=((a[i][k]%mod)+(b[k][j]%mod))%mod;
^
prog.cpp: In function ‘std::vector<std::vector<int> > pow(std::vector<std::vector<int> >, int, int)’:
prog.cpp:45:34: error: too few arguments to function ‘std::vector<std::vector<int> > pow(std::vector<std::vector<int> >, int, int)’
vector<vector<int> > b=pow(a,k/2);
^
prog.cpp:42:22: note: declared here
vector<vector<int> > pow(vector<vector<int> >a,int k,int mod){
^~~
prog.cpp:49:21: error: invalid initialization of non-const reference of type ‘std::vector<std::vector<int> >&’ from an rvalue of type ‘std::vector<std::vector<int> >’
return mult(b,mult(b,a,mod),mod);
~~~~^~~~~~~~~
prog.cpp:27:22: note: initializing argument 2 of ‘std::vector<std::vector<int> > mult(std::vector<std::vector<int> >&, std::vector<std::vector<int> >&, int)’
vector<vector<int> > mult(vector<vector<int> > &a, vector<vector<int> > &b,int mod){
^~~~