#include <bits/stdc++.h>
using namespace std;
int n;
int m[4] = {2, 4, 8, 1};
int deep = 6;
vector<short> reg, breg;
bool found = false;
void brute() {
  if (reg.size() > deep || found) return;
  if (reg.back() == n) {
    found = true;
    breg = reg;
    return;
  }
  vector<bool> used(n + 1, false);
  for (int i = 0; i < reg.size(); ++i)
    for (int j = 0; j < 3; ++j)
      if (reg[i] * m[j] <= n && reg[i] * m[j] > reg.back())
        used[reg[i] * m[j]] = true;
  for (int i = 0; i < reg.size(); ++i)
    for (int j = 0; j < reg.size(); ++j)
      for (int k = 0; k < 4; ++k)
        if (reg[i] + reg[j] * m[k] <= n && reg[i] + reg[j] * m[k] > reg.back())
          used[reg[i] + reg[j] * m[k]] = true;
  for (int i = 0; i < reg.size(); ++i) used[reg[i]] = false;
  for (int i = 2; i < used.size(); ++i) {
    if (reg.size() > deep || found) return;
    if (used[i]) {
      reg.push_back(i);
      brute();
      reg.pop_back();
    }
  }
}
int main() {
  cin >> n;
  reg.resize(1, 1);
  for (int i = 1; i < 10 && !found; ++i) {
    deep = i;
    brute();
  }
  cout << breg.size() - 1 << endl;
  vector<string> ans;
  while (breg.size() > 1) {
    bool found = false;
    char buf[50];
    for (int i = 0; i < breg.size() - 1 && !found; ++i)
      for (int j = 0; j < 3 && !found; ++j)
        if (breg.back() == breg[i] * m[j]) {
          sprintf(buf, "lea e%cx, [%d*e%cx]", char((int)breg.size() - 1 + 'a'),
                  m[j], char(i + 'a'));
          ans.push_back(string(buf));
          breg.pop_back();
          found = true;
        }
    for (int i = 0; i < breg.size() - 1 && !found; ++i)
      for (int j = 0; j < breg.size() - 1 && !found; ++j)
        for (int k = 0; k < 4 && !found; ++k)
          if (breg.back() == breg[i] + breg[j] * m[k]) {
            if (k == 3)
              sprintf(buf, "lea e%cx, [e%cx + e%cx]",
                      char((int)breg.size() - 1 + 'a'), char(i + 'a'),
                      char(j + 'a'));
            else
              sprintf(buf, "lea e%cx, [e%cx + %d*e%cx]",
                      char((int)breg.size() - 1 + 'a'), char(i + 'a'), m[k],
                      char(j + 'a'));
            ans.push_back(string(buf));
            breg.pop_back();
            found = true;
          }
  }
  for (int i = ans.size() - 1; i >= 0; --i) cout << ans[i] << endl;
  return 0;
}
