#include <bits/stdc++.h>
using namespace std;
struct Node {
  int x, t, y;
} a[105], res[105];
int n, ans, rule;
int ct = 0, val[30];
double ti;
inline void print() {
  printf("%d\n", ans);
  for (int i = 1; i <= ans; i++)
    printf("lea e%cx, [e%cx + %d*e%cx]\n", i + 'a', res[i].x + 'a', res[i].t,
           res[i].y + 'a');
}
inline void dfs(int x) {
  if (x - 1 >= ans || x - 1 > rule) return;
  if (val[x - 1] == n) {
    ans = x - 1;
    for (int i = 1; i < x; i++) res[i] = a[i];
    return;
  }
  ct++;
  if (ct % 10000 == 0 && (clock() - ti) * 1000 >= 4800 * CLOCKS_PER_SEC) {
    print();
    exit(0);
  }
  int q[10], p[10];
  for (int i = 0; i < x; i++) p[i] = q[i] = i;
  random_shuffle(p, p + x);
  random_shuffle(q, q + x);
  for (int ti = 0; ti < x; ti++) {
    int i = p[ti];
    for (int tj = 0; tj < x; tj++) {
      int j = q[tj];
      for (int k = 1; k <= 8; k <<= 1) {
        long long t = 1ll * val[i] * k + val[j];
        if (t > n) continue;
        val[x] = t;
        a[x].x = j, a[x].t = k, a[x].y = i;
        dfs(x + 1);
      }
    }
    for (int k = 2; k <= 8; k <<= 1) {
      long long t = 1ll * val[i] * k;
      if (t > n) continue;
      val[x] = t;
      a[x].x = 25, a[x].t = k, a[x].y = i;
      dfs(x + 1);
    }
  }
}
int main() {
  srand(time(NULL));
  ti = clock();
  scanf("%d", &n);
  int x = n;
  while (x) rule++, x >>= 1;
  val[0] = 1;
  ans = rule;
  dfs(1);
  print();
  return 0;
}
