#include <bits/stdc++.h>
using namespace std;
struct node {
  int s, a, b, t;
};
node r[30], ans[30];
int n, m, tot;
void dfs() {
  if (r[m].s == n) {
    tot = m;
    memcpy(ans, r, sizeof(r));
    return;
  }
  if (m + 1 >= tot) return;
  node& nex = r[++m];
  for (nex.b = 0; nex.b < m; ++nex.b) {
    for (nex.t = 1; nex.t <= 8; nex.t *= 2) {
      nex.a = -1;
      nex.s = r[nex.b].s * nex.t;
      if (nex.s > n) break;
      dfs();
      for (nex.a = 0; nex.a < m; ++nex.a) {
        nex.s += r[nex.a].s;
        if (nex.s <= n) dfs();
        if (tot <= m) {
          --m;
          return;
        }
        nex.s -= r[nex.a].s;
      }
    }
  }
  --m;
}
int main(void) {
  scanf("%d", &n);
  m = 0;
  r[0].s = 1;
  r[0].a = -1;
  r[0].b = 0;
  r[0].t = 1;
  tot = 8;
  dfs();
  printf("%d\n", tot);
  for (int i = 1; i <= tot; ++i) {
    printf("lea e%cx, [", 'a' + i);
    if (ans[i].a >= 0) printf("e%cx + ", 'a' + ans[i].a);
    if (ans[i].t > 1) printf("%d*", ans[i].t);
    printf("e%cx]\n", 'a' + ans[i].b);
  }
  return 0;
}
