#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using vi = vector<int>;
using vll = vector<ll>;
template <typename P, typename Q>
ostream& operator<<(ostream& os, const pair<P, Q>& p) {
  return os << '(' << p.first << ", " << p.second << ')';
}
template <typename K, typename V>
ostream& operator<<(ostream& os, const map<K, V>& v) {
  os << '[';
  for (const auto& it : v) (os << it) << ", ";
  return os << ']';
}
template <typename T>
ostream& operator<<(ostream& os, const set<T>& v) {
  os << '[';
  for (const auto& it : v) (os << it) << ", ";
  return os << ']';
}
template <typename T>
ostream& operator<<(ostream& os, const vector<T>& v) {
  os << '[';
  for (const auto& it : v) os << it << ", ";
  return os << ']';
}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ll l, r;
  cin >> l >> r;
  cout << "YES" << '\n';
  for (ll x = l; x < r; x += 2) {
    cout << x << ' ' << x + 1 << '\n';
  }
  return 0;
}
