#include<bits/stdc++.h>
using namespace std;typedeflonglong ll;typedefunsignedlonglong ull;typedefunsignedint uii;typedef pair<int, ll> pii;
template<typename T>inlinevoidrd(T& x){int tmp =1;char c =getchar(); x =0;while(c >'9'|| c <'0'){if(c =='-')tmp =-1; c =getchar();}while(c >='0'&& c <='9'){ x = x *10+ c -'0'; c =getchar();}
x *= tmp;}constint N =2e5+10;constint M =1e7+10;constint mod =1e9+7;constint inf =0x3f3f3f3f;int n, m, k;int sg[2005][15][35]={0};int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};inline bool isLeap(int y){return(y %4==0&& y %100!=0)||(y %400==0);}intdfs(int y,int m,int d){if(sg[y][m][d])return sg[y][m][d];if(y >2001)return1;if(y ==2001&& m >11)return1;if(y ==2001&& m ==11&& d >4)return1;//+1天if(m ==2){if(isLeap(y)&& d ==29||!isLeap(y)&& d ==28){if(dfs(y, m +1,1)==-1)return sg[y][m][d]=1;}else{if(dfs(y, m, d +1)==-1)return sg[y][m][d]=1;}}elseif(d == day[m]){if(m <12&&dfs(y, m +1,1)==-1)return sg[y][m][d]=1;elseif(m ==12&&dfs(y +1,1,1)==-1)return sg[y][m][d]=1;}else{if(dfs(y, m, d +1)==-1)return sg[y][m][d]=1;}//+1个月if(m !=12){if(day[m +1]>=(d +isLeap(y)&& m ==2)){if(dfs(y, m +1, d)==-1)return sg[y][m][d]=1;}}else{if(dfs(y +1,1, d)==-1)return sg[y][m][d]=1;}return sg[y][m][d]=-1;}intmain(){#ifdef _DEBUG
FILE* _INPUT =freopen("input.txt","r",stdin);// FILE* _OUTPUT = freopen("output.txt", "w", stdout);#endif// !_DEBUGint cas =0, T =0;rd(T);
sg[2001][11][4]=-1;while(T--){// while (~scanf("%d %d", &n,&k)) {int y, m, d;rd(y),rd(m),rd(d);if(dfs(y, m, d)==1)puts("YES");elseputs("NO");}return0;}