시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
새 광고 캠페인의 일환으로, 한 대기업이 도시 어딘가에 자사 로고를 세우려고 한다. 회사는 올해 광고 예산 전부를 이 로고에 쓸 예정이라 로고는 아주 거대해야 한다. 한 관리자는 건물 전체를 로고의 구성 요소로 사용하기로 했다.
로고는 서로 높이가 모두 다른 n개의 세로 줄무늬로 이루어지며, 줄무늬는 왼쪽에서 오른쪽으로 1번부터 n번까지 번호가 매겨진다. 로고는 1,2,…,n의 순열 (s1,s2,…,sn)으로 표현된다. 즉 s1번 줄무늬가 가장 낮고, s2번 줄무늬가 두 번째로 낮으며, 이런 식으로 sn번 줄무늬가 가장 높다. 줄무늬의 실제 높이 값은 중요하지 않고 오직 상대적인 순서만이 의미가 있다.
큰길을 따라 m개의 건물이 늘어서 있고, 모든 건물의 높이는 서로 다르다. 연속한 n개의 건물로 이루어진 구간이 로고와 일치한다는 것은, 그 구간 안에서 s1번째 건물이 가장 낮고, s2번째 건물이 두 번째로 낮고, 이런 식으로 순서가 로고와 같음을 뜻한다. 예를 들어 높이가 5,10,4인 건물들은 로고 (3,1,2)와 일치한다. 3번째 건물(높이 4)이 가장 낮고, 1번째 건물이 두 번째로 낮으며, 2번째 건물이 가장 높기 때문이다. 로고가 건물들과 일치하는 모든 위치를 찾아라.
첫째 줄에 두 정수 n과 m이 주어진다 (2≤n≤m≤106).
둘째 줄에 1,2,…,n의 순열을 이루는 n개의 정수 s1,…,sn이 주어진다 (1≤si≤n, 그리고 i=j이면 si=sj).
셋째 줄에 건물들의 높이인 m개의 정수 h1,…,hm이 주어진다 (1≤hi≤109). 모든 hi는 서로 다르다.
각 줄에서 정수들은 하나의 공백으로 구분된다.
첫째 줄에 일치하는 구간의 개수 k를 출력한다.
둘째 줄에는 각 일치에 대해 로고의 1번 줄무늬에 대응하는 건물의 1-기반 번호, 즉 각 일치 구간의 시작 위치를 증가하는 순서로 하나의 공백으로 구분하여 출력한다.
k=0이면 둘째 줄은 비워 둔다.

구간 6,3,8,12,7과 7,1,10,11,9은 모두 순열 (2,1,5,3,4)로 표현되는 로고와 일치한다. 첫 번째 구간에서 2번째 건물(높이 3)이 가장 낮고, 1번째 건물(높이 6)이 두 번째로 낮으며, 5번째 건물(높이 7)이 세 번째로 낮고, 이런 식으로 이어진다.