#include <bits/stdc++.h>
using namespace std;
clock_t __stt;
inline void TStart() { __stt = clock(); }
inline void TReport() {
  printf("\nTaken Time : %.3lf sec\n",
         (double)(clock() - __stt) / CLOCKS_PER_SEC);
}
template <typename T>
T MIN(T a, T b) {
  return a < b ? a : b;
}
template <typename T>
T MAX(T a, T b) {
  return a > b ? a : b;
}
template <typename T>
T ABS(T a) {
  return a > 0 ? a : (-a);
}
template <typename T>
void UMIN(T &a, T b) {
  if (b < a) a = b;
}
template <typename T>
void UMAX(T &a, T b) {
  if (b > a) a = b;
}
int n, res, val[26], tmp[26];
char cur[20][55], fin[20][55];
bool used[20][305];
map<long long, int> minstp;
void dfs(int stp, int sz) {
  if (stp >= res) return;
  int i, j, k;
  memcpy(tmp, val, sizeof(int) * sz);
  sort(tmp, tmp + sz);
  reverse(tmp, tmp + sz);
  if (tmp[0] == n) {
    res = stp;
    memcpy(fin, cur, sizeof(cur));
    return;
  }
  for (i = 1; i < sz; ++i) {
    if (tmp[i] == tmp[i - 1]) return;
  }
  long long hs = (long long)sz;
  for (i = 0; i < sz; ++i) {
    hs = hs * 313LL + (long long)tmp[i];
  }
  if (minstp.count(hs) && minstp[hs] <= stp) return;
  minstp[hs] = stp;
  for (i = 0; i < sz; ++i) {
    for (j = 0; j < sz; ++j) {
      for (k = 8; k >= 1; k >>= 1) {
        val[sz] = val[i] + val[j] * k;
        if (val[sz] <= n && !used[stp][val[sz]]) {
          used[stp][val[sz]] = 1;
          sprintf(cur[stp], "lea e%cx, [e%cx + %d*e%cx]\n", ('a' + sz),
                  ('a' + i), k, ('a' + j));
          dfs(stp + 1, sz + 1);
        }
      }
    }
    for (k = 8; k >= 1; k >>= 1) {
      val[sz] = val[i] * k;
      if (val[sz] <= n && !used[stp][val[sz]]) {
        used[stp][val[sz]] = 1;
        sprintf(cur[stp], "lea e%cx, [%d*e%cx]\n", ('a' + sz), k, ('a' + i));
        dfs(stp + 1, sz + 1);
      }
    }
  }
  for (i = 0; i < sz; ++i) {
    for (j = 0; j < sz; ++j) {
      for (k = 8; k >= 1; k >>= 1) {
        used[stp][val[i] + val[j] * k] = 0;
      }
    }
    for (k = 8; k >= 1; k >>= 1) {
      used[stp][val[i] * k] = 0;
    }
  }
}
int main() {
  int i, j, k;
  scanf("%d", &n);
  res = 6;
  val[0] = 1;
  minstp.clear();
  dfs(0, 1);
  printf("%d\n", res);
  for (i = 0; i < res; ++i) {
    printf("%s", fin[i]);
  }
  return 0;
}
