#include <bits/stdc++.h>
using namespace std;
const long long INF = 1000000007;
long long gcd(long long b, long long s) { return (s != 0) ? gcd(s, b % s) : b; }
int a[100005];
int main() {
  int n;
  scanf("%d", &n);
  vector<pair<pair<long long, long long>, int> > op;
  if (n <= 3) {
    puts("NO");
  } else {
    puts("YES");
    if (n % 4 == 0) {
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(1, 2), 3));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(2, 3), 3));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(6, 4), 3));
      for (int i = 4; i < n; i += 4) {
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(i + 2, i + 1), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(i + 4, i + 3), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(1, 1), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(24, 0), 0));
      }
    } else if (n % 4 == 2) {
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(1, 4), 0));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(2, 3), 0));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(5, 5), 3));
      for (int i = 4; i < n - 2; i += 4) {
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(i + 2, i + 1), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(i + 4, i + 3), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(1, 1), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(25, 0), 0));
      }
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(n, n - 1), 1));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(25, 1), 1));
    } else if (n % 4 == 1) {
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(5, 1), 1));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(4, 2), 1));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(2, 3), 3));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(6, 4), 3));
      for (int i = 5; i < n; i += 4) {
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(i + 2, i + 1), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(i + 4, i + 3), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(1, 1), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(24, 0), 0));
      }
    } else {
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(4, 2), 1));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(2, 3), 0));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(1, 5), 3));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(5, 5), 3));
      for (int i = 5; i < n - 2; i += 4) {
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(i + 2, i + 1), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(i + 4, i + 3), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(1, 1), 1));
        op.push_back(pair<pair<long long, long long>, int>(
            pair<long long, long long>(25, 0), 0));
      }
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(n, n - 1), 1));
      op.push_back(pair<pair<long long, long long>, int>(
          pair<long long, long long>(25, 1), 1));
    }
    for (int i = 0; i < op.size(); i++) {
      if (op[i].second == 0)
        printf("%I64d + %I64d = %I64d\n", op[i].first.first, op[i].first.second,
               op[i].first.first + op[i].first.second);
      if (op[i].second == 1)
        printf("%I64d - %I64d = %I64d\n", op[i].first.first, op[i].first.second,
               op[i].first.first - op[i].first.second);
      if (op[i].second == 3)
        printf("%I64d * %I64d = %I64d\n", op[i].first.first, op[i].first.second,
               op[i].first.first * op[i].first.second);
    }
  }
}
