오래된 프로그램의 소스 코드가 사라졌습니다. 남은 것은 그 프로그램이 무슨 일을 하는지에 대한 증언뿐입니다. 이 프로그램을 똑같이 다시 구현해야 합니다.
프로그램은 영어 사전에 나올 법한 평범한 텍스트를 한 줄씩 읽어, 각 줄을 아래 규칙에 따라 변형한 뒤 출력합니다. 규칙은 반드시 아래 순서대로 각 줄에 적용합니다.
d 두 개(dd)를 p 하나로 바꿉니다. (연속한 d가 3개 이상 나오는 경우는 없습니다.)ei를 모두 ie로 바꿉니다. 단, 바로 앞 글자가 c이면(cei) 그대로 둡니다.pink를 모두 floyd로 바꿉니다.a–z)도 아니고 공백도 아닌 문자를 모두 지웁니다. 공백은 입력에 있던 그대로 보존합니다.각 규칙은 앞 단계까지 처리된 문자열 위에서 판정하며, 4번(문자 제거)은 맨 마지막에 수행합니다. 따라서 규칙 1–3의 인접 여부는 원래 입력의 인접 여부로 판정됩니다. 예를 들어 d123d는 두 d가 붙어 있지 않으므로 p가 되지 않고, 숫자만 지워져 dd가 됩니다. 반면 123dd의 dd는 붙어 있으므로 p가 됩니다.
원래 이야기에 나오던 vv를 m으로 바꾸는 동작은 프린터 오류였을 뿐, 프로그램의 기능이 아닙니다. 적용하지 마세요.
입력은 EOF라고만 적힌 줄을 만나면 종료됩니다. 그 줄과 그 뒤의 내용은 처리하지도, 출력하지도 않습니다.
여러 줄의 텍스트가 주어집니다. 각 줄의 길이는 80글자 미만입니다. 입력은 EOF만 적힌 줄로 끝납니다.
EOF 줄을 만나기 전까지의 각 줄에 대해, 위 규칙을 순서대로 적용한 결과를 한 줄씩 출력합니다. 공백은 입력에 있던 그대로 유지합니다.