#include <iostream>
using namespace std;
int months[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
bool check(int y, int m, int d)
{
if (d <= 0 || m <= 0 || m >= 13) return false;
if (m != 2)
{
if (d > months[m]) return false;
}
else
{
int day = months[2] + (y % 4 == 0 && y % 100 != 0 || y % 400 == 0);
if (d > day) return false;
}
return true;
}
bool have2(int y)
{
int yy = y;
while (yy)
{
int yyy = yy % 10;
if (yyy == 2)
{
return true;
}
yy /= 10;
}
return false;
}
int main()
{
int ans1 = 0;
for (long i = 19000101; i <= 99991231; ++i)
{
int year = i / 10000, month = i % 10000 / 100, day = i % 100;
if (check(year, month, day))
{
if (have2(i))
ans1++;
}
}
cout << ans1 << endl;
return 0;
}
01-09
399
03-29
230
06-17
167
03-28
218