#include <bits/stdc++.h>
using namespace std;
const long double eps = 1e-9;
const int inf = (1 << 30) - 1;
const long long inf64 = ((long long)1 << 62) - 1;
const long double pi = acos(-1);
template <class T>
T sqr(T x) {
  return x * x;
}
template <class T>
T abs(T x) {
  return x < 0 ? -x : x;
}
int cur[100];
int ans = 6;
vector<pair<int, pair<int, int> > > com, ans_com;
void go(int ind, int n) {
  if (ind - 2 >= ans) {
    return;
  }
  if (cur[ind - 1] == n) {
    if (ind - 2 < ans) {
      ans = ind - 2;
      ans_com = com;
    }
    return;
  }
  bool already_try[300];
  for (int i = 0; i <= n; ++i) {
    already_try[i] = false;
  }
  for (int ik = 3; ik >= 0; --ik) {
    for (int i = ind - 1; i >= 0; --i) {
      for (int j = ind - 1; j >= 0; --j) {
        int tmp = (cur[i] << ik) + cur[j];
        if (tmp <= n) {
          bool key = false;
          for (int t = 0; t < ind; ++t) {
            if (cur[t] >= tmp) {
              key = true;
              break;
            }
          }
          if (!key && !already_try[tmp]) {
            already_try[tmp] = true;
            cur[ind] = tmp;
            com.push_back(make_pair(ik, make_pair(i, j)));
            go(ind + 1, n);
            com.pop_back();
          }
        }
      }
    }
  }
}
string num(int x) {
  string res = "";
  res.push_back('e');
  res.push_back('a' + x);
  res.push_back('x');
  return res;
}
int main() {
  int n;
  cin >> n;
  if (n == 1) {
    cout << 0 << endl;
    return 0;
  }
  cur[0] = 1;
  cur[1] = 0;
  go(2, n);
  cout << ans << endl;
  for (int i = 0; i < ans; ++i) {
    cout << "lea " << num(i + 2) << ", [" << num(ans_com[i].second.second)
         << " + " << (1 << ans_com[i].first) << "*"
         << num(ans_com[i].second.first) << "]\n";
  }
  return 0;
}
