#include <bits/stdc++.h>
using namespace std;
int dp[10][82][256][256];
int N;
int M = 6;
int a[10];
string proga;
void f(int m, string p) {
  if (m + 1 >= M) return;
  if (m >= dp[m > 0 ? a[1] : 0][m > 1 ? a[2] : 0][m > 2 ? a[3] : 0]
             [m > 3 ? a[4] : 0])
    return;
  dp[m > 0 ? a[1] : 0][m > 1 ? a[2] : 0][m > 2 ? a[3] : 0][m > 3 ? a[4] : 0] =
      m;
  for (int i = 0; i <= m; i++) {
    for (int k = 2; k <= 8; k *= 2) {
      ostringstream o;
      string p2 = p;
      o << "lea e" << (char)('a' + m + 1) << "x, [" << k << "*e"
        << (char)('a' + i) << "x]" << endl;
      p2 += o.str();
      a[m + 1] = k * a[i];
      if (a[m + 1] <= a[m] || a[m + 1] > N) continue;
      if (a[m + 1] == N) {
        M = m + 1;
        proga = p2;
        return;
      }
      f(m + 1, p2);
    }
    for (int j = 0; j <= m; j++) {
      for (int k = 1; k <= 8; k *= 2) {
        ostringstream o;
        string p2 = p;
        o << "lea e" << (char)('a' + m + 1) << "x, [e" << (char)('a' + i)
          << "x + ";
        o << k << "*e" << (char)('a' + j) << "x]" << endl;
        p2 += o.str();
        a[m + 1] = a[i] + k * a[j];
        if (a[m + 1] <= a[m] || a[m + 1] > N) continue;
        if (a[m + 1] == N) {
          M = m + 1;
          proga = p2;
          return;
        }
        f(m + 1, p2);
      }
    }
  }
}
int main() {
  string ln;
  getline(cin, ln);
  istringstream(ln) >> N;
  if (N == 1) {
    cout << 0 << endl;
    return 0;
  }
  memset(a, 0, sizeof(a));
  memset(dp, 127, sizeof(dp));
  a[0] = 1;
  f(0, "");
  cout << M << endl << proga;
  return 0;
}
