#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int x = 0, f = 1, c = getchar();
  for (; !isdigit(c); c = getchar())
    if (c == '-') f ^= 1;
  for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';
  return f ? x : -x;
}
int tar;
int val[26];
int tp[26];
int ans;
char cmd[26][105];
void dfs(int i) {
  if (val[i - 1] == tar) {
    printf("%d\n", i - 1);
    for (int j = 0; j < (int)(i - 1); ++j) puts(cmd[j + 1]);
    exit(0);
  }
  if (i - 1 >= ans) return;
  for (int j = 0; j < (int)(i); ++j)
    for (int coef = 0; coef < (int)(4); ++coef) {
      int mul = 1 << coef;
      tp[i] = j * 10 + mul;
      val[i] = mul * val[j];
      sprintf(cmd[i], "lea e%cx, [%d*e%cx]", i + 'a', mul, j + 'a');
      if (val[i] <= tar) dfs(i + 1);
    }
  for (int j = 0; j < (int)(i); ++j)
    for (int k = 0; k < (int)(i); ++k)
      for (int coef = 0; coef < (int)(4); ++coef) {
        int mul = 1 << coef;
        tp[i] = (j * 26 + k) * 10 + mul;
        val[i] = val[j] + mul * val[k];
        sprintf(cmd[i], "lea e%cx, [e%cx + %d*e%cx]", i + 'a', j + 'a', mul,
                k + 'a');
        if (val[i] <= tar) dfs(i + 1);
      }
}
int main() {
  tar = read();
  val[0] = 1;
  for (ans = 0; ans <= 26; ++ans) dfs(1);
  printf("%d\n", ans);
  return 0;
}
