public BitMatrix cut(int s, int i, int j)
    {
      if (s<=0 || s>n)
        throw new Error("s = " + s);
      if (i+s>n || j+s>n)
        throw new Error("Cut overflow");
      BitMatrix M = empty(s);
      for (int r=0;r<s;r++)
      {
        BitSet src = m[i+r];
        BitSet trg = M.m[r];
        for (int c=0;c<s;c++)
          trg.set(c,src.get(c+j));
      }
      return M;
    }