#include <bits/stdc++.h>
using namespace std;
int n, deep;
int m[4] = {2, 4, 8, 1};
vector<short> r, br;
bool found = false;
void brute() {
  if (r.size() > deep || found) return;
  if (r.back() == n) {
    found = true;
    br = r;
    return;
  }
  vector<bool> u(n + 1, false);
  for (int i = 0; i <= r.size(); ++i)
    for (int j = 0; j < r.size(); ++j)
      for (int k = 0; k < 4; ++k)
        if ((i == r.size() ? 0 : r[i]) + r[j] * m[k] <= n &&
            (i == r.size() ? 0 : r[i]) + r[j] * m[k] > r.back())
          u[(i == r.size() ? 0 : r[i]) + r[j] * m[k]] = true;
  for (int i = 0; i < r.size(); ++i) u[r[i]] = false;
  for (int i = 2; i < u.size() && !found; ++i)
    if (u[i]) {
      r.push_back(i);
      brute();
      r.pop_back();
    }
}
int main() {
  cin >> n;
  r.resize(1, 1);
  for (int i = 1; i < 7 && !found; ++i) {
    deep = i;
    brute();
  }
  cout << br.size() - 1 << endl;
  for (int h = 1; h < br.size(); ++h) {
    found = false;
    for (int i = 0; i <= h; ++i)
      for (int j = 0; j < h; ++j)
        for (int k = 0; k < 4 && !found; ++k)
          if (br[h] == (i == h ? 0 : br[i]) + br[j] * m[k]) {
            if (i == h)
              printf("lea e%cx, [%d*e%cx]\n", h + 'a', m[k], j + 'a');
            else if (k == 3)
              printf("lea e%cx, [e%cx + e%cx]\n", h + 'a', i + 'a', j + 'a');
            else
              printf("lea e%cx, [e%cx + %d*e%cx]\n", h + 'a', i + 'a', m[k],
                     j + 'a');
            found = true;
          }
  }
  return 0;
}
