#include <bits/stdc++.h>
using namespace std;
int n, deep = 1;
int m[4] = {2, 4, 8, 1};
vector<short> r;
bool f = 0;
void brute() {
  if (r.size() > deep || f) return;
  if (r.back() == n) {
    printf("%d\n", r.size() - 1);
    for (int h = 1; h < r.size(); ++h) {
      f = 0;
      for (int i = 0; i <= h; ++i)
        for (int j = 0; j < h && !f; ++j)
          for (int k = 0; k < 4 && !f; ++k)
            if (r[h] == (i == h ? 0 : r[i]) + r[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');
              f = 1;
            }
    }
    f = 1;
    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() && !f; ++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 && !f; ++i, ++deep) brute();
  return 0;
}
