빙고

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

확률과 통계 수강생들이 빙고를 하고 있다. 이들의 빙고 게임은 다음과 같은 규칙으로 진행된다.

  • 참가자들은 각자 n×nn \times n 정사각형 모양의 보드 위 각 칸에 11부터 n2n^2까지의 정수를 겹치지 않도록 하나씩 적어넣는다.
  • 매 라운드에, 사회자는 11부터 n2n^2까지의 정수 중 하나를 부른다. 이때 이미 부른 수는 고르지 않는다.
  • 참가자는 자신의 보드에서 사회자가 부른 수가 있는 위치를 찾아 색을 채운다.
  • 사회자가 더 이상 수를 부르지 않기로 하면, 게임이 끝나고 점수가 계산된다. 각 참가자의 점수는 색을 채운 칸들로만 이루어진 줄의 수이다. 이때 고려하는 줄은 가로 nn줄, 세로 nn줄과 대각선 22줄로, 총 2n+22n+2개의 줄이 있다.

위 빙고판의 점수는 55점이다.

사회자는 매우 공정하여, 매 차례에 부를 수 있는 수를 동일한 확률로 선택하여 부른다.

현재까지 진행된 게임의 상황을 반영한 참가자 AA의 빙고판이 주어진다. 사회자가 정확히 kk개의 수를 추가로 부를 예정이라고 할 때, AA가 받을 최종 점수의 기댓값을 구해 보자.

입력

첫 번째 줄에 두 정수 nn, kk가 주어진다. (1n100;(1 \le n \le 100; 0kn2)0 \le k \le n^2)

두 번째 줄부터 nn개의 줄에 걸쳐 빙고판의 상태가 0011로 이루어진 길이 nn의 문자열로 주어진다. 00은 칸에 색이 채워지지 않았음을, 11은 색이 채워져 있음을 의미한다.

입력된 빙고판에는 채워지지 않은 칸이 적어도 kk개 있음이 보장된다.

출력

AA가 얻는 최종 점수의 기댓값을 XX라고 할 때, 첫째 줄에 정수 (n2)!×X(n^2)! \times X를 소수 109+710^9+7로 나눈 나머지를 출력한다.

주어진 입력의 범위에서 (n2)!×X(n^2)! \times X가 정수가 된다는 사실을 증명할 수 있다.