새로운 컴퓨터 바이러스가 발견되어, 이를 치료하는 백신 프로그램을 만들려고 한다. 백신을 만들려면 바이러스 코드를 알아야 하는데, 감염된 프로그램들에 공통으로 들어 있는 부분이 바이러스로 의심되는 부분이다. 각 프로그램의 코드는 양의 정수들의 나열로 표현된다.
바이러스는 탐지를 피하기 위해 자신의 코드를 거꾸로 뒤집어 넣기도 한다. 따라서 어떤 코드와 그 코드를 뒤집은 것은 같은 바이러스 코드로 본다. 예를 들어 한 프로그램에는 A B C D 순서로, 다른 프로그램에는 D C B A 순서로 들어 있어도 같은 코드로 취급한다.
또한 프로그램 코드의 일부가 우연히 같을 수 있으므로, 공통으로 나타나는 코드의 길이가 K 이상일 때에만 바이러스 코드로 추정한다.
감염된 프로그램 N개가 주어질 때, 모든 프로그램에 공통으로 (정방향 또는 역방향으로) 나타나며 길이가 K 이상인 연속된 코드 조각이 존재하는지 판정하는 프로그램을 작성하시오.
첫째 줄에 감염된 프로그램의 개수 N과 바이러스 코드로 추정하기 위한 최소 길이 K가 주어진다. (2≤N≤100, 4≤K≤1,000)
둘째 줄부터 각 프로그램의 정보가 순서대로 주어진다. 각 프로그램마다 먼저 그 프로그램 코드의 길이 Mi가 한 줄에 주어지고, 다음 줄에 프로그램 코드를 이루는 Mi개의 양의 정수가 공백으로 구분되어 주어진다. (10≤Mi≤1,000, 각 정수는 1 이상 10,000 이하)
모든 프로그램에서 바이러스 코드로 추정되는 부분이 존재하면 YES를, 존재하지 않으면 NO를 출력한다.