종류의 바이러스로 이루어진 생태계가 있다. 각 바이러스의 구조는 영대문자로 이루어진 문자열 로 나타낸다. 구조가 같아도 서로 다른 종류의 바이러스는 구별한다.
두 바이러스의 유사도는 구조를 나타내는 두 문자열의 최장 공통 접두사의 길이이다. 생태계의 멸종 위험도는 서로 다른 두 종류의 바이러스를 고르는 모든 순서 없는 쌍에 대해 유사도를 합한 값이다.
생태계에 번의 변화가 순서대로 일어난다. 각 변화는 영대문자 와 한 자리 숫자 를 이어 붙인 로 나타내며, 다음 순서대로 적용한다.
문자를 제거한 결과 빈 문자열이 될 수 있다. 빈 문자열은 어떤 문자로도 시작하지 않으며, 다른 문자열과의 유사도는 이다. 새로 추가된 바이러스도 이후의 모든 변화에 참여한다.
각 변화 이후, 현재 존재하는 모든 바이러스로 계산한 멸종 위험도와 처음에 주어진 종류의 바이러스만으로 계산한 멸종 위험도의 차의 절댓값을 구하여라. 두 값을 계산할 때에는 모두 해당 시점의 구조를 사용한다.
입력은 다음과 같은 형식으로 주어진다.
개의 정수를 공백으로 구분하여 한 줄에 출력한다. 번째 정수는 번째 변화 이후 두 멸종 위험도의 차의 절댓값이다.
첫 번째 변화 이후 처음의 두 바이러스의 구조는 각각 빈 문자열과 가 된다. 새 바이러스 두 종류의 구조는 모두 이다. 전체 멸종 위험도는 이고 처음의 두 바이러스만으로 계산한 값은 이다.
두 번째 변화 이후 구조는 차례대로 , , 빈 문자열, 빈 문자열이다. 두 멸종 위험도는 모두 이다.
문자열 는 개의 변화를 공백 없이 이어 붙인 길이 의 문자열이다. 번째 변화의 문자와 추가할 바이러스의 종류 수는 각각 과 에 적힌 숫자이다.
0부터 9까지의 숫자 문자 중 하나이다 ().| 2 | 8 | . |
| 3 | 11 | 입력에 등장하는 모든 영대문자는 이다. |
| 4 | 17 | 입력에 등장하는 모든 영대문자는 중 하나이다. |
| 5 | 9 | 입력에 등장하는 모든 영대문자는 중 하나이다. |
| 6 | 16 | 모든 변화가 일어난 후 바이러스의 종류 수는 이다. |
| 7 | 33 | 추가적인 제약이 없다. |
첫 번째 변화 이후 처음의 두 바이러스의 구조는 모두 가 된다. 구조가 같아져도 서로 다른 종류로 구별한다.