서로 아는 부부 쌍
시간 제한15초메모리 제한1024 MB
남자와 여자 집합에 q번의 합치기 연산을 순서대로 적용합니다. 두 집합에서 모두 연결된 부부 쌍의 수에 i를 곱한 값의 합을 10^9+7로 나눈 나머지로 구합니다.
문제
마을 스피시스키 슈트보르톡에는 쌍의 부부가 살고 있다. 남자 명과 여자 명이 있으며, 두 집단 모두 1부터 까지 번호가 매겨져 있다. 모든 에 대해 남자 는 여자 와 결혼한 사이이다.
마을 술집에서 두 남자가 만나면 둘은 친구가 된다. 친구 관계는 영원히 유지된다. 두 남자는 친구이거나 공통으로 아는 사람이 있으면 서로 아는 사이이다. 남자 와 가 친구가 되면 둘은 서로 아는 사이가 되고, 가 아는 모든 사람은 가 아는 모든 사람과 서로 알게 된다. 여자도 같은 규칙을 따른다.
부부 와 부부 가 친숙한 부부 쌍이라는 것은 남자 와 남자 가 서로 아는 사이이고, 여자 와 여자 도 서로 아는 사이라는 뜻이다.
처음에는 아무도 친구가 아니다. 이후 개의 사건이 순서대로 일어난다. 각 사건은 두 남자의 만남 또는 두 여자의 만남이다. 만난 두 사람이 아직 친구가 아니라면 친구가 된다. 매 사건 후에는 인 쌍 중에서 남자 와 남자 가 서로 아는 사이이고 여자 와 여자 도 서로 아는 사이인 쌍의 수를 센다. 쌍은 순서를 구분하지 않으므로 와 은 같은 쌍이다.
입력
첫 줄에는 테스트 케이스의 수 가 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있다.
각 테스트 케이스의 첫 줄에는 정수 과 가 주어진다. 이어지는 개의 줄 중 번째 줄에는 정수 , , 가 주어진다 (, , ). 가 1이면 남자 와 남자 가 만나는 것이고, 2이면 여자 와 여자 가 만나는 것이다.
출력
각 테스트 케이스마다 사건 이후의 친숙한 부부 쌍의 수를 라 하고, 라 하자. 를 로 나눈 나머지를 한 줄에 출력한다.
힌트
사건 3 이후 부부 1과 부부 3은 친숙하다. 사건 5 이후에는 모든 부부가 서로 친숙하다. 따라서 합은 이다.