#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
#pragma GCC target( \
    "sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
using namespace std;
int k[26], n;
string name(int i) {
  string res;
  res += 'e';
  res += (char)(i + 'a');
  res += 'x';
  return res;
}
string create(int i, int a, int b, int kb) {
  return "lea " + name(i) + ", [" + name(a) + " + " + to_string(kb) + "*" +
         name(b) + "]";
}
string create_one(int i, int a, int b, int kb) {
  return "lea " + name(i) + ", [" + to_string(kb) + "*" + name(b) + "]";
}
vector<tuple<int, int, int, int>> ans(26), curr(26);
const int KEK = 1e6;
int mx = 6, cnt[KEK];
void f(int i) {
  if (i - 1 >= mx || k[i - 1] > n || cnt[k[i - 1]] > 1) {
    return;
  }
  if (k[i - 1] == n) {
    ans = curr;
    mx = i - 1;
    return;
  }
  for (int a = i - 1; a >= 0; a--) {
    for (int k2 = 8; k2 >= 1; k2 /= 2) {
      k[i] = k[a] * k2;
      curr[i - 1] = {i, -1, a, k2};
      cnt[k[i]]++;
      f(i + 1);
      cnt[k[i]]--;
      curr[i - 1] = {0, 0, 0, 0};
      k[i] = 0;
      for (int b = i - 1; b >= 0; b--) {
        k[i] = k[a] + k[b] * k2;
        curr[i - 1] = {i, a, b, k2};
        cnt[k[i]]++;
        f(i + 1);
        cnt[k[i]]--;
        curr[i - 1] = {0, 0, 0, 0};
        k[i] = 0;
      }
    }
  }
}
signed main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> n;
  k[0] = 1;
  f(1);
  cout << mx << '\n';
  for (auto [i, a, b, kb] : ans) {
    if (kb == 0) {
      break;
    }
    if (a == -1) {
      cout << create_one(i, a, b, kb) << '\n';
    } else {
      cout << create(i, a, b, kb) << '\n';
    }
  }
  return 0;
}
