첫째 줄에 다섯 정수 m, n, k, smin, smax가 주어진다.
- m (5 ≤ m ≤ 30): 캡션의 행 수
- n (5 ≤ n ≤ 2000): 캡션의 열 수
- k (5 ≤ k ≤ 30): 글꼴에서 각 글자의 가로 픽셀 폭
- smin, smax (0 ≤ smin ≤ smax ≤ 30): 글자 사이에 허용되는 최소·최대 간격
이어지는 m개의 줄은 글꼴을 설명한다. 각 줄은 t(k + 3) − 1개의 문자로 이루어지며, t (1 ≤ t ≤ 26)는 정의된 글자의 개수이다. 이 m개의 줄에는 t개의 글리프가 들어 있고, 각 글리프는 대문자 알파벳(A–Z) 한 글자를 나타내는 '.'과 '*'로 된 m × k 격자이다. 이 중 첫째 줄에는 각 글리프가 나타내는 글자가 해당 글리프 바로 앞에 적혀 있다. 첫째 줄은 구분용으로 모두 2t − 1개의 공백을, 나머지 줄은 각각 3t − 1개의 공백을 사용하며, 배치 형식은 예제 입력과 동일하다. 글자는 어떤 순서로도 나올 수 있으며, 각 글자는 많아야 한 번 정의된다. 공백 문자는 m × k 격자가 모두 '.'인 글자로 암묵적으로 정의되어 있으며, 다른 글자와 마찬가지로 smin·smax 간격 제한을 따른다.
그다음 줄에는 현재 표시된 텍스트가 주어진다. 이 문자열은 ccur개의 문자(1 ≤ ccur ≤ 30)로, 대문자 알파벳과 공백으로 이루어지며 앞뒤에 공백이 없다.
그다음 줄에는 ccur개의 음이 아닌 정수가 주어지며, 현재 텍스트의 각 문자 앞 간격을 나타낸다. 첫 번째 수는 캡션 왼쪽 끝에서 첫 문자까지의 간격, 두 번째 수는 첫 문자에서 두 번째 문자까지의 간격, … 순이다. 현재 텍스트는 캡션 안에 들어가지만, 그 간격이 smin·smax 제한을 따를 필요는 없다.
그다음 줄에는 새로 표시할 텍스트가 주어진다. 이 문자열은 cnew개의 문자(1 ≤ cnew ≤ 30)로, 대문자 알파벳과 공백으로 이루어지며 앞뒤에 공백이 없다.
현재 텍스트와 새 텍스트에 쓰인 모든 글자는 글꼴에 정의되어 있다.