007 - 素数の日の並び

時間制限 2 秒 / メモリ制限 256 MB / 得点 10 / x 0 /


TLE
2sec
MLE
256MB
得点
10

問題

2022年11月,12月
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


1週間にはある月に属する日だけではなく、その前の月の日や、その次の月の日も含まれることがある。たとえば2022年11月1日が含まれる週から、12月31日が含まれる週までの週の並びを見ると、右の図のようになっている。

このような週の並びで、日曜日から土曜日までの1週間分の日の並びに、最大でいくつの素数の日が入っているかを考える。右の図の場合、各週の素数の日は以下のようになる。

1週目の素数の日は31、2、3、5の4つ。
2週目の素数の日は7, 11の2つ。
3週目の素数の日は13, 17, 19の3つ。
4週目の素数の日は23だけで1つ。
5週目の素数の日は29, 2, 3の3つ。
6週目の素数の日は5, 7の2つ。
7週目の素数の日は11, 13, 17の3つ。
8週目の素数の日は19, 23の2つ。
9週目の素数の日は29, 31の2つ。

つまり、2022年11月1日が含まれる週から12月31日が含まれる週までのうち、素数の日の数の最大値は4で、そのような週の数は1である。このように、週を常に日曜日から始める7日間としたとき、素数の日の数が最大になる週が、ある期間において何度現れるだろうか? ただし、西暦2000年1月1日は土曜日とする。また、4で割り切れてかつ100で割り切れないか、400で割り切れる年は閏年とする。1月、3月、5月、7月、8月、10月、12月は31日まで、2月は28日まで(ただし閏年では29日まで)、他の月は30日まである。

開始年月と終了年月が与えられたとき、その開始年月の1日が含まれる週から、終了年月の最後の日が含まれる週までの期間において、一つの週に現れる素数の日の数の最大値と、素数の日の数が最大になる週の数を求めるプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

$y_1$ $m_1$
$y_2$ $m_2$

1行目に開始年$y_1$ ($2000 \leq y_1 \leq 100,000,000$)と開始月$m_1$ ($1 \leq m_1 \leq 12$)、2行目に終了年$y_2$ ($y_1 \leq y_2 \leq 100,000,000$)と終了月$m_2$ ($1 \leq m_2 \leq 12$)が与えられる。ただし、$y_1 = y_2$のときは $m_1 \leq m_2$とする。

出力

一つの週に現れる素数の日の数の最大値と、素数の日の数が最大になる週の数を、空白区切りで1行に出力する。

入出力例

入力例1

2022 1
2022 12

出力例1

4 8

入力例2

2003 9
2022 11

出力例2

4 156