#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int num = 0;
  char c = getchar();
  if (c == '-') return -read();
  while (c >= '0' && c <= '9') {
    num = (num << 3) + (num << 1) + c - '0';
    c = getchar();
  }
  return num;
}
inline long long READ() {
  long long num = 0;
  char c = getchar();
  if (c == '-') return -READ();
  while (c >= '0' && c <= '9') {
    num = (num << 3) + (num << 1) + c - '0';
    c = getchar();
  }
  return num;
}
int a[30];
string cmd[30];
inline string ewhatx(int what) {
  string ans = "eax";
  ans[1] += what;
  return ans;
}
inline bool dfs(int mxv, int now, int num) {
  if (a[now] > num) return 0;
  if (now == mxv) {
    if (a[now] != num) return 0;
    cout << mxv << endl;
    for (int i = 0; i < mxv; i++) cout << cmd[i] << endl;
    return 1;
  }
  for (int i = 0; i <= now; i++)
    for (int j = 1; j <= 8; j <<= 1) {
      a[now + 1] = a[i] * j;
      if (a[now + 1] > num) continue;
      if (now + 1 == mxv && a[now + 1] != num) continue;
      cmd[now] = "lea " + ewhatx(now + 1) + ", [" + (char)('0' + j) + "*" +
                 ewhatx(i) + "]";
      if (!dfs(mxv, now + 1, num)) continue;
      return 1;
    }
  for (int i = 0; i <= now; i++)
    for (int j = 0; j <= now; j++)
      for (int k = 1; k <= 8; k <<= 1) {
        a[now + 1] = a[i] + k * a[j];
        if (a[now + 1] > num) continue;
        if (now + 1 == mxv && a[now + 1] != num) continue;
        cmd[now] = "lea " + ewhatx(now + 1) + ", [" + ewhatx(i) + " + " +
                   (char)('0' + k) + "*" + ewhatx(j) + "]";
        if (!dfs(mxv, now + 1, num)) continue;
        return 1;
      }
  return 0;
}
int main() {
  int n;
  cin >> n;
  a[0] = 1;
  for (int i = 0; i < 30; i++)
    if (dfs(i, 0, n)) return 0;
}
