//Acest program este complet functional, merge bine, orice data este primita! └■∧└■
#include <iostream>
int main()
{
int z, l, a, vf=0;
std::cin >> z >> l >> a;
if((l>12 || l<=0) || (z>31 || z<=0)) std::cout << "NU";
else {
switch(l) {
case 1:
if(z>31) vf++;
break;
case 2:
if((a%4==0 && a%100!=0) || a%400==0) //algoritm an bisect {
if(z>29) vf++;
}
else if(z>28) vf++;
break;
case 3:
if(z>31) vf++;
break;
case 4:
if(z>30) vf++;
break;
case 5:
if(z>31) vf++;
break;
case 6:
if(z>30) vf++;
break;
case 7:
if(z>31) vf++;
break;
case 8:
if(z>31) vf++;
break;
case 9:
if(z>30) vf++;
break;
case 10:
if(z>31) vf++;
break;
case 11:
if(z>30) vf++;
break;
case 12:
if(z>31) vf++;
break;
default: vf++;
}
if(vf>0) std::cout << "NU";
else std::cout << "DA";
}
}