#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-9;
const double pi = acos(-1.0);
const int inf = 0x3f3f3f3f;
const int N = 100;
int n;
int a[N];
char buf[1010];
string cmd[N];
void out(int n) {
  printf("%d\n", n);
  for (int i = 0; i < (int)(n); ++i) puts(cmd[i].c_str());
}
bool dfs(int deep, int pos) {
  if (pos > deep) return false;
  for (int i = 0; i < (int)(pos + 1); ++i)
    for (int k = 2; k <= 8; k *= 2) {
      a[pos + 1] = a[i] * k;
      if (a[pos + 1] > n) continue;
      sprintf(buf, "lea e%cx, [%d*e%cx]", 'a' + pos + 1, k, 'a' + i);
      cmd[pos] = buf;
      if (a[pos + 1] == n) {
        out(pos + 1);
        return true;
      }
      if (dfs(deep, pos + 1)) return true;
    }
  for (int i = 0; i < (int)(pos + 1); ++i)
    for (int j = 0; j < (int)(pos + 1); ++j)
      for (int k = 1; k <= 8; k *= 2) {
        a[pos + 1] = a[i] + a[j] * k;
        if (a[pos + 1] > n) continue;
        sprintf(buf, "lea e%cx, [e%cx + %d*e%cx]", 'a' + pos + 1, 'a' + i, k,
                'a' + j);
        cmd[pos] = buf;
        if (a[pos + 1] == n) {
          out(pos + 1);
          return true;
        }
        if (dfs(deep, pos + 1)) return true;
      }
  return false;
}
void solve() {
  if (n == 1) {
    puts("0");
    return;
  }
  a[0] = 1;
  for (int deep = 0; deep < (int)(100); ++deep)
    if (dfs(deep, 0)) break;
}
int main() {
  while (scanf("%d", &n) != EOF) {
    solve();
  }
  return 0;
}
