#include #include #include #include #include #include #include #include struct Kaseki{ std::string comp1; std::string comp2; std::vector str; std::vector str2; int A[2]; int B[2]; int C[2]; }typedef K; std::vector split(const std::string &str, char delim){ std::vector res; size_t current = 0, found; while((found = str.find_first_of(delim, current)) != std::string::npos){ res.push_back(std::string(str, current, found - current)); current = found + 1; } res.push_back(std::string(str, current, str.size() - current)); return res; } int main(){ K k; //std::string comp1; //std::string comp2; std::cin >> k.comp1; std::cin >> k.comp2; //std::vector str = split(comp1,'.'); //std::vector str2 = split(comp2,'.'); k.str=split(k.comp1,'.'); k.str2 = split(k.comp2,'.'); k.A[0] = std::stoi(k.str[0]); k.B[0] = std::stoi(k.str[1]); k.C[0] = std::stoi(k.str[2]); k.A[1] = std::stoi(k.str2[0]); k.B[1] = std::stoi(k.str2[1]); k.C[1] = std::stoi(k.str2[2]); if(k.A[0] > k.A[1]) std::cout << "YES" << std::endl; else if(k.A[0] < k.A[1]) std::cout << "NO" << std::endl; else if(k.B[0] > k.B[1]) std::cout << "YES" << std::endl; else if(k.B[0] < k.B[1]) std::cout << "NO" << std::endl; else if(k.C[0] >= k.C[1]) std::cout << "YES" << std::endl; else std::cout << "NO" << std::endl; return 0; }