만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

성격 검사

시간 제한3초메모리 제한1024 MB

요약
학생 n명의 문항별 답을 보고, 같은 답을 준 문항이 k개 이상 겹치는 학생 쌍 (a, b)를 찾습니다. b가 가장 작은 쌍을 고르고, 그다음 a가 가장 큰 쌍을 고르며, 없으면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
비트 연산, 문자열, 완전 탐색
정답자
아직 제출이 없습니다

문제

nn명의 학생이 mm개의 문항으로 이루어진 성격 검사를 본다. 학생은 1번부터 nn번까지, 문항은 1번부터 mm번까지 번호가 붙어 있다. 각 문항에 대해 학생은 대문자 알파벳 하나(A에서 Z)로 답하거나 답하지 않는다. 학생 ii의 답을 나타내는 길이 mm의 문자열을 SiS_i라 하자. jj번째 문자가 대문자이면 jj번 문항에 답한 것이고, 마침표(.)이면 답하지 않은 것이다.

두 학생은, 두 학생이 모두 답한 문항들의 집합 중 크기가 kk 이상이고, 집합에 속한 모든 문항에서 같은 답을 고른 집합이 존재하면 비슷하다고 한다. 예를 들어 n=3n = 3, m=3m = 3, k=2k = 2, S1S_1 = BBC, S2S_2 = ..C, S3S_3 = .BC인 경우, 학생 1과 3은 2번과 3번 문항에 같은 답을 했으므로 비슷하다. 학생 2와 3은 같은 답을 한 문항이 3번 하나뿐이므로 비슷하지 않다.

a<ba < b인 정수 쌍 (a,b)(a, b) 중 학생 aa와 bb가 비슷한 쌍을 찾는다. 그런 쌍이 없다고 판단할 수도 있다. 쌍이 여럿이면 bb가 가장 작은 쌍을 고르고, 그래도 여럿이면 aa가 가장 큰 쌍을 고른다.

입력

첫 줄에 세 정수 nn, mm, kk가 주어진다 (2≤n≤50002 \le n \le 5000, 1≤m≤30001 \le m \le 3000, 1≤k≤51 \le k \le 5). 다음 nn개의 줄에는 각각 길이 mm의 문자열이 주어진다. ii번째 줄은 SiS_i이다.

출력

비슷한 학생 쌍의 정수 aa와 bb를 한 줄에 출력한다. 그런 쌍이 없으면 정수 -1을 출력한다.

예제4

  1. 예제 1

    입력
    3 3 2
    BBC
    ..C
    .BC
    
    예상 출력
    1 3
    
  2. 예제 2

    입력
    3 3 1
    BBC
    ..C
    .BC
    
    예상 출력
    1 2
    
  3. 예제 3

    입력
    3 3 3
    BBC
    ..C
    .BC
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    4 12 2
    GOOD.LUCK.IN
    WINNING.ICPC
    ASIA.PACIFIC
    CHAMPIONSHIP
    
    예상 출력
    2 3