#include <bits/stdc++.h>
using namespace std;
template <typename T>
T sqr(T x) {
  return x * x;
}
template <typename T>
T abs(T x) {
  return x < 0 ? -x : x;
}
template <typename T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
set<vector<int> > s;
vector<pair<char, pair<int, int> > > ans;
bool rec(vector<int>& a) {
  if (a.size() == 1) {
    return a[0] == 24;
  }
  if (s.find(a) != s.end()) {
    return false;
  }
  s.insert(a);
  for (size_t i = 0; i < a.size(); ++i) {
    for (size_t j = i + 1; j < a.size(); ++j) {
      vector<int> b = a;
      int x = a[i], y = a[j];
      b.erase(b.begin() + j);
      b.erase(b.begin() + i);
      b.push_back(x + y);
      ans.push_back(make_pair('+', make_pair(x, y)));
      if (rec(b)) {
        return true;
      }
      b.pop_back();
      ans.pop_back();
      b.push_back(y - x);
      ans.push_back(make_pair('-', make_pair(y, x)));
      if (rec(b)) {
        return true;
      }
      b.pop_back();
      ans.pop_back();
      b.push_back(x - y);
      ans.push_back(make_pair('-', make_pair(x, y)));
      if (rec(b)) {
        return true;
      }
      b.pop_back();
      ans.pop_back();
      b.push_back(x * y);
      ans.push_back(make_pair('*', make_pair(x, y)));
      if (rec(b)) {
        return true;
      }
      b.pop_back();
      ans.pop_back();
    }
  }
  return false;
}
int main(int, char**) {
  ios_base::sync_with_stdio(false);
  int n;
  cin >> n;
  if (n < 4) {
    cout << "NO" << endl;
    return 0;
  }
  cout << "YES" << endl;
  vector<int> a;
  for (int i = 1; i <= n % 2 + 4; ++i) {
    a.push_back(i);
  }
  rec(a);
  for (int i = n % 2 + 4; i < n; i += 2) {
    ans.push_back(make_pair('-', make_pair(i + 2, i + 1)));
    ans.push_back(make_pair('*', make_pair(24, 1)));
  }
  for (size_t i = 0; i < ans.size(); ++i) {
    int x = ans[i].second.first;
    int y = ans[i].second.second;
    int r = -1;
    switch (ans[i].first) {
      case '-':
        r = x - y;
        break;
      case '+':
        r = x + y;
        break;
      case '*':
        r = x * y;
        break;
    }
    cout << x << " " << ans[i].first << " " << y << " = " << r << endl;
  }
  fprintf(stderr, "Time execute: %.3lf sec\n",
          clock() / (double)CLOCKS_PER_SEC);
  return 0;
}
