#include <bits/stdc++.h>
using namespace std;
int req, ptr, reg[26];
vector<string> cur;
inline string getOp1(int x, int mul, int y) {
  string ret = "lea e";
  ret += char(y + 'a');
  ret += "x, [";
  ret += char(mul + '0');
  ret += "*e";
  ret += char(x + 'a');
  ret += "x]";
  return ret;
}
inline string getOp2(int x, int y, int mul, int z) {
  string ret = "lea e";
  ret += char(z + 'a');
  ret += "x, [e";
  ret += char(x + 'a');
  ret += "x + ";
  if (mul > 1) {
    ret += char(mul + '0');
    ret += "*";
  }
  ret += "e";
  ret += char(y + 'a');
  ret += "x]";
  return ret;
}
void dfs(int dep) {
  if (reg[ptr - 1] == req) {
    cout << cur.size() << endl;
    for (auto x : cur) {
      cout << x << endl;
    }
    exit(0);
  }
  if (dep == 0) return;
  for (int i = ptr - 1; i >= 0; i--) {
    for (int mul : {8, 4, 2}) {
      int nval = reg[i] * mul;
      if (nval > req || nval <= reg[ptr - 1]) continue;
      bool flg = true;
      for (int j = 0; j < ptr; j++) {
        if (reg[i] == nval) flg = false;
      }
      if (!flg) continue;
      cur.push_back(getOp1(i, mul, ptr));
      reg[ptr] = nval;
      ptr++;
      dfs(dep - 1);
      ptr--;
      cur.pop_back();
    }
  }
  for (int i = ptr - 1; i >= 0; i--) {
    for (int j = ptr - 1; j >= 0; j--) {
      for (int mul : {8, 4, 2, 1}) {
        int nval = reg[i] + reg[j] * mul;
        if (nval > req || nval <= reg[ptr - 1]) continue;
        bool flg = true;
        for (int j = 0; j < ptr; j++) {
          if (reg[i] == nval) flg = false;
        }
        if (!flg) continue;
        cur.push_back(getOp2(i, j, mul, ptr));
        reg[ptr] = nval;
        ptr++;
        dfs(dep - 1);
        ptr--;
        cur.pop_back();
      }
    }
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout << setprecision(32);
  cin >> req;
  reg[0] = 1;
  ptr = 1;
  for (int i = 0;; i++) {
    dfs(i);
  }
  return 0;
}
