#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; template struct Matrix{ vector> a; Matrix(){} Matrix(size_t n, size_t m):a(n, vector(m, 0)){} Matrix(size_t n):Matrix(n, n){} Matrix(vector> a):a(a){} size_t height() const{ return a.size(); } size_t width() const{ return a[0].size(); } inline const vector &operator[](size_t k) const{ return a[k]; } inline vector &operator[](size_t k){ return a[k]; } static Matrix I(size_t n){ Matrix mat(n); for(int i=0; i> c(n, vector(l, 0)); for(int i=0; i>=1; } return ret; } static pair Gauss_Jordan(const Matrix &a, const Matrix &b){ size_t n=a.height(), m=a.width(), l=b.width(); Matrix c(n, m+l); for(int i=0; i, vector>> linear_equations(const Matrix &a, const vector &b){ int n=a.height(), m=a.width(); Matrix B(n, 1); for(int i=0; i myon(n,-1); vector nuo(m, -1); for(int i=0; i retc; vector> retd; return make_pair(retc, retd); } } vector c(m); vector> d; for(int i=0; i v(m); v[i]=1; for(int j=0; j; int main() { int n, k; cin>>n>>k; Mat mat(k*k*2); for(int i=0; il && i!=l) || (i>j && j