#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<string>
using namespace std;
long long LeapYear(string x);
long long Huluculu(string x);
long long Bulukulu(string x);
long long check;
int main()
{
string x;
while (cin >> x)
{
check = 0;
if (LeapYear(x) == 1)
{
printf("This is leap year.\n");
check = 1;
}
if (Huluculu(x) == 1)
{
printf("This is huluculu festival year.\n");
check = 1;
}
if (Bulukulu(x) == 1&&LeapYear(x)==1)
{
printf("This is bulukulu festival year.\n");
check = 1;
}
if (check == 0)
{
printf("This is an ordinary year.\n");
}
cout << "\n";
}
}
long long LeapYear(string x)
{
vector<long long>v;
vector<long long>v1;
vector<long long>v2;
long long i, j, k,m,n=4,m1,n1=100,m2,n2=400;
for (i = 0; i < x.size(); i++)
v.push_back(x[i] - '0');
m = 0;
for (i = 0; i<v.size(); i++)
{
if (m < n)
m = m * 10 + v[i];
if (m >= n)
{
if (m%n != 0)
{
m = (m%n);
}
if (m%n == 0)
m = 0;
}
}
m1 = 0;
for (i = 0; i<v.size(); i++)
{
if (m1 < n1)
m1 = m1 * 10 + v[i];
if (m1 >= n1)
{
if (m1%n1 != 0)
{
m1= (m1%n1);
}
if (m1%n1 == 0)
m1 = 0;
}
}
m2 = 0;
for (i = 0; i<v.size(); i++)
{
if (m2 < n2)
m2 = m2* 10 + v[i];
if (m2 >= n2)
{
if (m2%n2 != 0)
{
m2 = (m2%n2);
}
if (m2%n2 == 0)
m2= 0;
}
}
v.clear();
v1.clear();
v2.clear();
if (((m % 4) == 0 && (m1 % 100) != 0) || (m2 % 400) == 0)
return 1;
else
return 0;
}
long long Huluculu(string x)
{
vector<long long>v;
long long i, j, k, m, n = 15;
for (i = 0; i < x.size(); i++)
v.push_back(x[i] - '0');
m = 0;
for (i = 0; i < v.size(); i++)
{
if (m < n)
m = m * 10 + v[i];
if (m >= n)
{
if (m%n != 0)
{
m = (m%n);
}
if (m%n == 0)
m = 0;
}
}
v.clear();
if (m%n == 0)
return 1;
else
return 0;
}
long long Bulukulu(string x)
{
vector<long long>v;
long long i, j, k, m, n = 55;
for (i = 0; i < x.size(); i++)
v.push_back(x[i] - '0');
m = 0;
for (i = 0; i < v.size(); i++)
{
if (m < n)
m = m * 10 + v[i];
if (m >= n)
{
if (m%n != 0)
{
m = (m%n);
}
if (m%n == 0)
m = 0;
}
}
v.clear();
if (m%n == 0)
return 1;
else
return 0;
}
ICNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxjc3RkaW8+CiNpbmNsdWRlPGNzdHJpbmc+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpsb25nIGxvbmcgIExlYXBZZWFyKHN0cmluZyB4KTsKbG9uZyBsb25nIEh1bHVjdWx1KHN0cmluZyB4KTsKbG9uZyBsb25nIEJ1bHVrdWx1KHN0cmluZyB4KTsKbG9uZyBsb25nIGNoZWNrOwppbnQgbWFpbigpCnsKCXN0cmluZyB4OwoJd2hpbGUgKGNpbiA+PiB4KQoJewoJCWNoZWNrID0gMDsKCQlpZiAoTGVhcFllYXIoeCkgPT0gMSkKCQl7CgkJCXByaW50ZigiVGhpcyBpcyBsZWFwIHllYXIuXG4iKTsKCQkJY2hlY2sgPSAxOwoJCX0KCQkgaWYgKEh1bHVjdWx1KHgpID09IDEpCgkJewoJCQlwcmludGYoIlRoaXMgaXMgaHVsdWN1bHUgZmVzdGl2YWwgeWVhci5cbiIpOwoJCQljaGVjayA9IDE7CgkJfQoJCSBpZiAoQnVsdWt1bHUoeCkgPT0gMSYmTGVhcFllYXIoeCk9PTEpCgkJewoJCQlwcmludGYoIlRoaXMgaXMgYnVsdWt1bHUgZmVzdGl2YWwgeWVhci5cbiIpOwoJCQljaGVjayA9IDE7CgkJfQoJCSBpZiAoY2hlY2sgPT0gMCkKCQl7CgkJCXByaW50ZigiVGhpcyBpcyBhbiBvcmRpbmFyeSB5ZWFyLlxuIik7CgkJfQoJCWNvdXQgPDwgIlxuIjsKCgl9Cn0KbG9uZyBsb25nIExlYXBZZWFyKHN0cmluZyB4KQp7Cgl2ZWN0b3I8bG9uZyBsb25nPnY7Cgl2ZWN0b3I8bG9uZyBsb25nPnYxOwoJdmVjdG9yPGxvbmcgbG9uZz52MjsKCWxvbmcgbG9uZyBpLCBqLCBrLG0sbj00LG0xLG4xPTEwMCxtMixuMj00MDA7Cglmb3IgKGkgPSAwOyBpIDwgeC5zaXplKCk7IGkrKykKCQl2LnB1c2hfYmFjayh4W2ldIC0gJzAnKTsKCW0gPSAwOwoJZm9yIChpID0gMDsgaTx2LnNpemUoKTsgaSsrKQoJewoKCQlpZiAobSA8IG4pCgkJCW0gPSBtICogMTAgKyB2W2ldOwoJCWlmIChtID49IG4pCgkJewoJCQkgCgkJCWlmIChtJW4gIT0gMCkKCQkJewoJCQkJbSA9IChtJW4pOwoKCQkJfQoJCQlpZiAobSVuID09IDApCgkJCQltID0gMDsKCQl9CgoJfQoKCW0xID0gMDsKCWZvciAoaSA9IDA7IGk8di5zaXplKCk7IGkrKykKCXsKCgkJaWYgKG0xIDwgbjEpCgkJCW0xID0gbTEgKiAxMCArIHZbaV07CgkJaWYgKG0xID49IG4xKQoJCXsKCgkJCWlmIChtMSVuMSAhPSAwKQoJCQl7CgkJCQltMT0gKG0xJW4xKTsKCgkJCX0KCQkJaWYgKG0xJW4xID09IDApCgkJCQltMSA9IDA7CgkJfQoKCX0KCW0yID0gMDsKCWZvciAoaSA9IDA7IGk8di5zaXplKCk7IGkrKykKCXsKCgkJaWYgKG0yIDwgbjIpCgkJCW0yID0gbTIqIDEwICsgdltpXTsKCQlpZiAobTIgPj0gbjIpCgkJewoKCQkJaWYgKG0yJW4yICE9IDApCgkJCXsKCQkJCW0yID0gKG0yJW4yKTsKCgkJCX0KCQkJaWYgKG0yJW4yID09IDApCgkJCQltMj0gMDsKCQl9CgoJfQoJdi5jbGVhcigpOwoJdjEuY2xlYXIoKTsKCXYyLmNsZWFyKCk7CglpZiAoKChtICUgNCkgPT0gMCAmJiAobTEgJSAxMDApICE9IDApIHx8IChtMiAlIDQwMCkgPT0gMCkKCQlyZXR1cm4gMTsKCWVsc2UKCQlyZXR1cm4gMDsKCgoJCn0KbG9uZyBsb25nIEh1bHVjdWx1KHN0cmluZyB4KQp7Cgl2ZWN0b3I8bG9uZyBsb25nPnY7Cglsb25nIGxvbmcgaSwgaiwgaywgbSwgbiA9IDE1OwoJZm9yIChpID0gMDsgaSA8IHguc2l6ZSgpOyBpKyspCgkJdi5wdXNoX2JhY2soeFtpXSAtICcwJyk7CgltID0gMDsKCWZvciAoaSA9IDA7IGkgPCB2LnNpemUoKTsgaSsrKQoJewoKCQlpZiAobSA8IG4pCgkJCW0gPSBtICogMTAgKyB2W2ldOwoJCWlmIChtID49IG4pCgkJewoKCQkJaWYgKG0lbiAhPSAwKQoJCQl7CgkJCQltID0gKG0lbik7CgoJCQl9CgkJCWlmIChtJW4gPT0gMCkKCQkJCW0gPSAwOwoJCX0KCgl9Cgl2LmNsZWFyKCk7CglpZiAobSVuID09IDApCgkJcmV0dXJuIDE7CgllbHNlCgkJcmV0dXJuIDA7Cn0KbG9uZyBsb25nIEJ1bHVrdWx1KHN0cmluZyB4KQp7Cgl2ZWN0b3I8bG9uZyBsb25nPnY7Cglsb25nIGxvbmcgaSwgaiwgaywgbSwgbiA9IDU1OwoJZm9yIChpID0gMDsgaSA8IHguc2l6ZSgpOyBpKyspCgkJdi5wdXNoX2JhY2soeFtpXSAtICcwJyk7CgltID0gMDsKCWZvciAoaSA9IDA7IGkgPCB2LnNpemUoKTsgaSsrKQoJewoKCQlpZiAobSA8IG4pCgkJCW0gPSBtICogMTAgKyB2W2ldOwoJCWlmIChtID49IG4pCgkJewoKCQkJaWYgKG0lbiAhPSAwKQoJCQl7CgkJCQltID0gKG0lbik7CgoJCQl9CgkJCWlmIChtJW4gPT0gMCkKCQkJCW0gPSAwOwoJCX0KCgl9Cgl2LmNsZWFyKCk7CglpZiAobSVuID09IDApCgkJcmV0dXJuIDE7CgllbHNlCgkJcmV0dXJuIDA7Cn0=