이정표 세기

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

아일랜드 시골길을 달리면 길가에 작은 회색 돌이 약 1마일 간격으로 놓여 있다. 거리를 표시하려고 세운 이정표다. 모두 오래된 것이라 세월이 흐르는 동안 몇 개는 사라졌고, 지금은 그 가운데 일부만 남아 있다.

너는 일정한 속도로 달리면서 남은 이정표를 연속으로 MM개 지나쳤고, 각각을 지난 시각을 적어 두었다. 자기 속도는 모르지만 길에 남은 이정표 NN개의 위치는 모두 안다. 이 기록으로 달린 속도를 알아낸다.

적어 둔 시각을 T1<T2<<TMT_1 < T_2 < \dots < T_M, 이정표의 위치를 X1<X2<<XNX_1 < X_2 < \dots < X_N이라고 하자. 어떤 시작 번호 jj가 모든 i=1,2,,Mi = 1, 2, \dots, M에 대하여

Xj+i1Xj=v(TiT1)X_{j+i-1} - X_j = v\,(T_i - T_1)

을 만족하면 속도 vv는 가능한 속도다. 속도의 단위는 시간당 마일이다.

가능한 속도가 몇 가지인지, 그리고 각각의 경우에 처음 지난 이정표와 두 번째로 지난 이정표 사이의 거리가 얼마인지 구하여라.

입력

첫째 줄에 정수 MMNN이 주어진다 (2MN1032 \le M \le N \le 10^3). MM은 연속으로 지나친 이정표의 개수, NN은 길에 남은 이정표의 총 개수다.

둘째 줄에 이정표를 지난 시각 T1,T2,,TMT_1, T_2, \dots, T_M이 시간 단위로 오름차순으로 주어진다. 값은 서로 다르고 0Ti10150 \le T_i \le 10^{15}이다.

셋째 줄에 이정표의 위치 X1,X2,,XNX_1, X_2, \dots, X_N이 마일 단위로 오름차순으로 주어진다. 값은 서로 다르고 0Xi10150 \le X_i \le 10^{15}이다.

출력

두 줄을 출력한다.

첫째 줄에는 가능한 속도의 가짓수를 출력한다.

둘째 줄에는 처음 지난 이정표와 두 번째로 지난 이정표 사이의 거리로 가능한 값을 모두 오름차순으로, 공백 하나로 구분해 출력한다. 가능한 속도가 하나도 없으면 둘째 줄은 비워 둔다.