#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 7;
int num[10], dep, to;
string ans[10];
string valnam(int cur) { return string("e") + char(cur + 'a') + 'x'; }
void getmul(int cur, int from, int d) {
  ans[cur] = string("lea ") + valnam(cur) + ", [" + char(d + '0') + '*' +
             valnam(from) + ']';
}
void getadd(int cur, int fc, int fnc, int d) {
  ans[cur] = string("lea ") + valnam(cur) + ", [" + valnam(fnc) + " + " +
             char(d + '0') + '*' + valnam(fc) + ']';
}
bool dfs(int cur) {
  if (num[cur - 1] == to) return true;
  if (num[cur - 1] > to) return false;
  if (cur > dep) return false;
  for (int i = 0; i < (cur); i++)
    for (int j = 1; j <= (3); j++) {
      num[cur] = num[i] << j;
      if (num[cur] > num[cur - 1]) {
        getmul(cur, i, 1 << j);
        if (dfs(cur + 1)) return true;
      }
    }
  for (int i = 0; i < (cur); i++)
    for (int j = 0; j < (cur); j++)
      for (int k = 0; k < (4); k++) {
        if (k == 0 && i >= j) continue;
        num[cur] = (num[i] << k) + num[j];
        if (num[cur] > num[cur - 1]) {
          getadd(cur, i, j, 1 << k);
          if (dfs(cur + 1)) return true;
        }
      }
  return false;
}
int main() {
  scanf("%d", &to);
  num[0] = 1;
  for (; !dfs(1); dep++)
    ;
  cout << dep << '\n';
  for (int k = 1; k <= (dep); k++) cout << ans[k] << '\n';
  return 0;
}
