#include <bits/stdc++.h>
using namespace std;
int n;
vector<pair<pair<int, int>, pair<int, int> > > res;
bool f;
int d;
void r(int deep, vector<int> a,
       vector<pair<pair<int, int>, pair<int, int> > > way) {
  for (int i = (0); i < (a.size()); ++i) {
    if (a[i] == n) {
      f = true;
      res = way;
      return;
    }
    if (a[i] > n) return;
  }
  if (deep >= d) return;
  vector<int> b = a;
  vector<pair<pair<int, int>, pair<int, int> > > way1 = way;
  for (int i = (0); i < (a.size()); ++i)
    for (int j = (0); j < (a.size()); ++j)
      for (int k = (0); k < (a.size()); ++k)
        for (int c = (0); c < (4); ++c) {
          int v = (1 << c);
          b[i] = b[j] + v * b[k];
          way1.push_back(make_pair(make_pair(i, v), make_pair(j, k)));
          r(deep + 1, b, way1);
          if (f) return;
          b[i] = a[i];
          way1.pop_back();
        }
}
int main() {
  scanf("%d", &n);
  if (n == 0) {
    printf("1\n");
    return 0;
  }
  f = false;
  d = 1;
  vector<int> a;
  a.resize(2);
  a[0] = 1;
  vector<pair<pair<int, int>, pair<int, int> > > way;
  while (1) {
    r(0, a, way);
    if (f) {
      printf("%d\n", res.size());
      for (int i = (0); i < (res.size()); ++i) {
        printf("lea e%cx, [e%cx + ", res[i].first.first + 'a',
               res[i].second.first + 'a');
        if (res[i].first.second != 1) printf("%d*", res[i].first.second);
        printf("e%cx]\n", res[i].second.second + 'a');
      }
      return 0;
    }
    d++;
  }
  return 0;
}
