#include #include namespace { using ModInt [[maybe_unused]] = atcoder::modint998244353; using Num [[maybe_unused]] = long long int; using Vec [[maybe_unused]] = std::vector; using Set [[maybe_unused]] = std::set; using Mset [[maybe_unused]] = std::multiset; using Edges [[maybe_unused]] = std::vector>; template using Q [[maybe_unused]] = std::queue; template using PQ [[maybe_unused]] = std::priority_queue, std::greater>; } using Grid = std::array, 50>; void solve(std::istream& is, std::ostream& os) { Num h {0}; Num w {0}; is >> h >> w; Grid base; for(Num y{0}; y> s; for(Num x{0}; x= h) || (tx >= w) || (g[ty][tx] != 1)) { failed = true; break; } g[y][x] = 2; g[ty][tx] = 3; } } } Num ct2 {0}; Num ct3 {0}; for(Num y{0}; !failed && (y 0) && (ct3 > 0)) { os << "YES\n"; return; } } } os << "NO\n"; return; } int main(void) { solve(std::cin, std::cout); return 0; }