#757
Silver I
MOO 게임
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

민준이는 인기 있는 게임인 "MOO 게임"을 하고 있다. 이 게임에는 11번부터 NN번까지 번호가 매겨진 NN개의 칸이 일렬로 놓여 있다. 모든 칸에는 M 또는 O 중 하나의 문자가 적혀 있으며, ii번째 칸에 적힌 문자를 sis_i라고 한다.

민준이는 KK번의 행동을 수행할 계획이다. ii번째 행동에서 민준이는 서로 다른 세 칸 (xi,yi,zi)(x_i, y_i, z_i)을 선택한다. 만약 sxi=Ms_{x_i} = \text{M}이고 syi=szi=Os_{y_i} = s_{z_i} = \text{O}라면 민준이는 11점을 얻는다. 다시 말해, 민준이가 선택한 세 칸의 문자를 순서대로 확인했을 때 문자열 MOO가 완성된다면 점수를 얻는 것이다.

민준이가 수행할 KK번의 행동이 주어졌을 때, 가능한 모든 보드 구성(2N2^N가지) 중에서 민준이가 얻을 수 있는 최대 점수와, 그 최대 점수를 얻을 수 있는 서로 다른 보드의 개수를 구한다. 두 보드에서 적어도 한 칸의 문자가 서로 다르다면 두 보드는 서로 다른 것으로 간주한다.

입력

첫째 줄에 칸의 개수 NN과 민준이가 수행할 행동의 횟수 KK가 공백으로 구분되어 주어진다. (3N203 \le N \le 20; 1K21051 \le K \le 2 \cdot 10^5)

이어서 KK개의 줄에 걸쳐 각 줄마다 민준이의 ii번째 행동을 나타내는 세 정수 xi,yi,zix_i, y_i, z_i가 공백으로 구분되어 주어진다. (1xi,yi,ziN1 \le x_i, y_i, z_i \le N; xi,yi,zix_i, y_i, z_i는 서로 다름)

출력

민준이가 얻을 수 있는 최대 점수와 해당 점수를 얻을 수 있는 보드의 개수를 공백으로 구분하여 출력한다.

예제 입력 1

5 6
1 2 3
1 2 3
1 3 5
2 3 4
5 3 2
5 2 3

예제 출력 1

4 2

예제 입력 2

6 12
2 4 3
2 3 4
3 5 2
3 5 1
3 1 5
3 1 2
6 1 5
1 6 4
2 3 6
3 6 2
4 1 6
3 4 2

예제 출력 2

6 3
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Silver I1명 투표· 약 1개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.