#ifndef ONLINE_JUDGE #define _GLIBCXX_DEBUG #endif #include using namespace std; #define rep(i,n) for(int i=0;i<(n);++i) #define all(a) (a).begin(),(a).end() using ll = long long; int inf = 2e9; ll infLL = 9e18; template istream& operator>>(istream& i,vector& v) {rep(j,v.size()) i>>v[j]; return i;} template void vecout(const vector &v) { rep(i, v.size()) { cout << v[i]; cout << (i == v.size()-1 ? '\n' : ' '); } } // ------------------------------------------------------------------------------------------------ void solve() { int n, m; cin >> n >> m; if(n == 0 || m == 0) { cout << "No\n"; return; } else { cout << "Yes\n" << static_cast(n) * m << ' ' << m-1 << '\n'; } } int main() { cin.tie(nullptr); // ios_base::sync_with_stdio(false); int t = 1; // cin >> t; rep(_,t) solve(); }