#include <bits/stdc++.h>
int a[26];
int w[256];
int n;
int LIMIT = 1;
int su[26], sv[26], sk[26];
int go(int lev) {
  if (a[lev] == n) {
    printf("%d\n", lev);
    for (int i = 0; i < lev; i++)
      if (su[i] == -1) {
        printf("lea e%cx, [%d*e%cx]\n", 'a' + i + 1, 1 << sk[i], 'a' + sv[i]);
      } else if (sk[i] == 0)
        printf("lea e%cx, [e%cx + e%cx]\n", 'a' + i + 1, 'a' + su[i],
               'a' + sv[i]);
      else
        printf("lea e%cx, [e%cx + %d*e%cx]\n", 'a' + i + 1, 'a' + su[i],
               1 << sk[i], 'a' + sv[i]);
    return 1;
  }
  if (lev >= LIMIT) return 0;
  int &i = su[lev], &j = sv[lev], &k = sk[lev];
  i = -1;
  for (j = 0; j <= lev; j++)
    for (k = 0; k <= 3; k++) {
      int v = (a[j] << k);
      if (v > a[lev] && v <= n) {
        a[lev + 1] = v;
        if (go(lev + 1)) return 1;
        a[lev + 1] = 0;
      }
    }
  for (i = 0; i <= lev; i++)
    for (j = 0; j <= lev; j++) {
      for (k = 0; k <= 3; k++) {
        int v = a[i] + (a[j] << k);
        if (v > a[lev] && v <= n) {
          a[lev + 1] = v;
          if (go(lev + 1)) return 1;
          a[lev + 1] = 0;
        }
      }
    }
  return 0;
}
int main(void) {
  scanf("%d", &n);
  if (n == 1) {
    printf("0\n");
    return 0;
  }
  a[0] = 1;
  w[1] = 1;
  for (LIMIT = 1;; LIMIT++) {
    if (go(0)) {
      break;
    }
  }
  return 0;
}
