#include <bits/stdc++.h>
using namespace std;
const long long inf = INT_MAX, df = 305;
inline long long read() {
  long long x = 0, y = 1;
  char ch = getchar();
  while (ch > '9' || ch < '0') y = (ch == '-') ? -1 : 1, ch = getchar();
  while (ch >= '0' && ch <= '9')
    x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
  return x * y;
}
long long i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, val[df],
    ans1[df], ans2[df], ans3[df], ans, pw[df];
void dfs(long long x) {
  if (o == 1) return;
  if (x == ans && val[x] == n) {
    printf("%lld\n", ans);
    for (long long i = (0); i <= (ans - 1); ++i) {
      if (ans2[i] != -1)
        printf("lea e%cx, [e%cx + %d*e%cx]\n", ans1[i] + 'a', ans2[i] + 'a',
               pw[i], ans3[i] + 'a');
      else
        printf("lea e%cx, [%d*e%cx]\n", ans1[i] + 'a', pw[i], ans3[i] + 'a');
    }
    o = 1;
    return;
  }
  if (x == ans) return;
  for (long long i = (0); i <= (x); ++i) {
    for (long long j = (-1); j <= (x); ++j) {
      for (long long tk = (0); tk <= (3); ++tk) {
        long long k = (1 << tk);
        if (j + 1)
          val[x + 1] = val[i] * k + val[j];
        else
          val[x + 1] = val[i] * k;
        ans1[x] = x + 1, ans2[x] = j, ans3[x] = i, pw[x] = k;
        dfs(x + 1);
      }
    }
  }
}
int main() {
  n = read();
  val[0] = 1;
  for (ans = 0; ans <= n; ans++) dfs(0);
  return 0;
}
