#include <bits/stdc++.h>
#define inf (1e9 + 7)
#define eps 0.000001
#define pi acos(-1)
#define mem(a, b) memset(a, b, sizeof(a))
using namespace std;

int n;

int main()
{
    cin>>n;
    if(n == 1){cout<<0<<endl;
}
else if(n == 2){cout<<1<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
}
else if(n == 3){cout<<1<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
}
else if(n == 4){cout<<1<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
}
else if(n == 5){cout<<1<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
}
else if(n == 6){cout<<2<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
}
else if(n == 7){cout<<2<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
}
else if(n == 8){cout<<1<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
}
else if(n == 9){cout<<1<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
}
else if(n == 10){cout<<2<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
}
else if(n == 11){cout<<2<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
}
else if(n == 12){cout<<2<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
}
else if(n == 13){cout<<2<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
}
else if(n == 14){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 15){cout<<2<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
}
else if(n == 16){cout<<2<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
}
else if(n == 17){cout<<2<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
}
else if(n == 18){cout<<2<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
}
else if(n == 19){cout<<2<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
}
else if(n == 20){cout<<2<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
}
else if(n == 21){cout<<2<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
}
else if(n == 22){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 23){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 24){cout<<2<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*ebx]"<<endl;
}
else if(n == 25){cout<<2<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
}
else if(n == 26){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 27){cout<<2<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
}
else if(n == 28){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 29){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
}
else if(n == 30){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
}
else if(n == 31){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 32){cout<<2<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
}
else if(n == 33){cout<<2<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
}
else if(n == 34){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 35){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
}
else if(n == 36){cout<<2<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
}
else if(n == 37){cout<<2<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
}
else if(n == 38){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 39){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 40){cout<<2<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
}
else if(n == 41){cout<<2<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
}
else if(n == 42){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 43){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 44){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 45){cout<<2<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
}
else if(n == 46){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 1*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
}
else if(n == 47){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 48){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [8*ecx]"<<endl;
}
else if(n == 49){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 50){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 51){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
}
else if(n == 52){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 53){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
}
else if(n == 54){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 55){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 56){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 57){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 58){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 59){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 60){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
}
else if(n == 61){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
}
else if(n == 62){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 63){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 64){cout<<2<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
}
else if(n == 65){cout<<2<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
}
else if(n == 66){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 67){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
}
else if(n == 68){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [4*ecx]"<<endl;
}
else if(n == 69){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
}
else if(n == 70){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 71){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [eax + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 72){cout<<2<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
}
else if(n == 73){cout<<2<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
}
else if(n == 74){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 75){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 76){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 77){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 78){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 2*edx]"<<endl;
}
else if(n == 79){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 80){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [8*ecx]"<<endl;
}
else if(n == 81){cout<<2<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
}
else if(n == 82){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 83){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
}
else if(n == 84){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 85){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
}
else if(n == 86){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 87){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 2*ecx]"<<endl;
}
else if(n == 88){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 89){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 90){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 91){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
}
else if(n == 92){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 2*edx]"<<endl;
}
else if(n == 93){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 94){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 95){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 2*ecx]"<<endl;
}
else if(n == 96){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [8*ecx]"<<endl;
}
else if(n == 97){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 98){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*eax]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 99){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
}
else if(n == 100){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 101){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
}
else if(n == 102){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 103){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 104){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 105){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 106){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 107){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 108){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 109){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
}
else if(n == 110){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 111){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 112){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*eax]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 113){cout<<3<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 114){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [edx + 2*edx]"<<endl;
}
else if(n == 115){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 116){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 117){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 118){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 119){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
cout<<"lea eex, [ecx + 2*edx]"<<endl;
}
else if(n == 120){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*ebx]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
}
else if(n == 121){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 122){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 123){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 124){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 125){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
}
else if(n == 126){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 2*edx]"<<endl;
}
else if(n == 127){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 128){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
cout<<"lea edx, [8*ecx]"<<endl;
}
else if(n == 129){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 130){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 131){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
}
else if(n == 132){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [4*ecx]"<<endl;
}
else if(n == 133){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
}
else if(n == 134){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [4*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 135){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 136){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [8*ecx]"<<endl;
}
else if(n == 137){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 138){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 139){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [eax + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 140){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 141){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [eax + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 142){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [eax + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 143){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 144){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 145){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 146){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 147){cout<<3<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
}
else if(n == 148){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 149){cout<<3<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
}
else if(n == 150){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 151){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 152){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 2*ecx]"<<endl;
}
else if(n == 153){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 154){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 155){cout<<3<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 2*ecx]"<<endl;
}
else if(n == 156){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ebx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 157){cout<<3<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 158){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 159){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 160){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
}
else if(n == 161){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 162){cout<<3<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 163){cout<<3<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
}
else if(n == 164){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 165){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
}
else if(n == 166){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 167){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
cout<<"lea eex, [ecx + 2*edx]"<<endl;
}
else if(n == 168){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 169){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 170){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}
else if(n == 171){cout<<3<<endl;
cout<<"lea ebx, [eax + 8*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 172){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 2*ecx]"<<endl;
cout<<"lea eex, [edx + 8*ecx]"<<endl;
}
else if(n == 173){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 174){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [ecx + 2*edx]"<<endl;
}
else if(n == 175){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}
else if(n == 176){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [8*edx]"<<endl;
}
else if(n == 177){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [eax + 8*edx]"<<endl;
}
else if(n == 178){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 179){cout<<4<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 2*edx]"<<endl;
}
else if(n == 180){cout<<3<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 181){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
}
else if(n == 182){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 183){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 184){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 185){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
}
else if(n == 186){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 2*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 187){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
cout<<"lea eex, [edx + 8*ecx]"<<endl;
}
else if(n == 188){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 189){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 190){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}
else if(n == 191){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 192){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
}
else if(n == 193){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 194){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 195){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
}
else if(n == 196){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
cout<<"lea eex, [4*edx]"<<endl;
}
else if(n == 197){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
cout<<"lea eex, [eax + 4*edx]"<<endl;
}
else if(n == 198){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 2*edx]"<<endl;
}
else if(n == 199){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 2*ecx]"<<endl;
cout<<"lea eex, [edx + 4*ecx]"<<endl;
}
else if(n == 200){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 201){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 202){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 203){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 204){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
cout<<"lea eex, [4*edx]"<<endl;
}
else if(n == 205){cout<<3<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
}
else if(n == 206){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 207){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [edx + 2*edx]"<<endl;
}
else if(n == 208){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [8*edx]"<<endl;
}
else if(n == 209){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [eax + 8*edx]"<<endl;
}
else if(n == 210){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 211){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 212){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
}
else if(n == 213){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 214){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 215){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}
else if(n == 216){cout<<3<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 217){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
}
else if(n == 218){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 219){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
}
else if(n == 220){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}
else if(n == 221){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 222){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 2*edx]"<<endl;
}
else if(n == 223){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [ebx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 224){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [8*edx]"<<endl;
}
else if(n == 225){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 226){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*eax]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 227){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 228){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 229){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 4*ebx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 230){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 231){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
cout<<"lea eex, [ecx + 2*edx]"<<endl;
}
else if(n == 232){cout<<4<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 233){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [eax + 8*edx]"<<endl;
}
else if(n == 234){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 8*edx]"<<endl;
}
else if(n == 235){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 236){cout<<4<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 237){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 8*ebx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 238){cout<<4<<endl;
cout<<"lea ebx, [eax + 4*eax]"<<endl;
cout<<"lea ecx, [eax + 1*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 239){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 240){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [8*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}
else if(n == 241){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
cout<<"lea eex, [eax + 8*edx]"<<endl;
}
else if(n == 242){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 243){cout<<3<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
}
else if(n == 244){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 245){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [eax + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}
else if(n == 246){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 8*edx]"<<endl;
}
else if(n == 247){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*ebx]"<<endl;
cout<<"lea edx, [ecx + 8*ecx]"<<endl;
cout<<"lea eex, [ecx + 2*edx]"<<endl;
}
else if(n == 248){cout<<4<<endl;
cout<<"lea ebx, [8*eax]"<<endl;
cout<<"lea ecx, [ebx + 2*eax]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 249){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [eax + 8*edx]"<<endl;
}
else if(n == 250){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [ebx + 4*eax]"<<endl;
cout<<"lea edx, [ebx + 8*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}
else if(n == 251){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 2*ebx]"<<endl;
cout<<"lea edx, [ebx + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 8*edx]"<<endl;
}
else if(n == 252){cout<<4<<endl;
cout<<"lea ebx, [4*eax]"<<endl;
cout<<"lea ecx, [ebx + 8*eax]"<<endl;
cout<<"lea edx, [ecx + 4*ecx]"<<endl;
cout<<"lea eex, [ecx + 4*edx]"<<endl;
}
else if(n == 253){cout<<4<<endl;
cout<<"lea ebx, [eax + 2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ebx + 2*ecx]"<<endl;
cout<<"lea eex, [edx + 8*ecx]"<<endl;
}
else if(n == 254){cout<<5<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 4*eax]"<<endl;
cout<<"lea edx, [eax + 4*ecx]"<<endl;
cout<<"lea eex, [ebx + 4*edx]"<<endl;
cout<<"lea efx, [eex + 8*edx]"<<endl;
}
else if(n == 255){cout<<4<<endl;
cout<<"lea ebx, [2*eax]"<<endl;
cout<<"lea ecx, [eax + 8*ebx]"<<endl;
cout<<"lea edx, [ecx + 2*ecx]"<<endl;
cout<<"lea eex, [edx + 4*edx]"<<endl;
}

    return 0;
}


#include <bits/stdc++.h>
#define inf (1e9 + 7)
#define eps 0.000001
#define pi acos(-1)
#define mem(a, b) memset(a, b, sizeof(a))
typedef unsigned __int64 LL;
using namespace std;

int n, num[5] = {0, 1, 2, 4, 8};
LL pw = 31, mod = 100007;
vector<LL> eg[100008];

struct node
{
    int num[27], d;
}st;

map<LL,  pair< int, pair<int, int>> > mps;

LL geths(struct node a)
{
    sort(a.num + 1, a.num + 1 + a.num[0]);
    LL res = 0;
    for(int i = 1;i <= a.num[0];i++)
        res = res * pw + a.num[i];
    return res;
}

LL getpos(LL a)
{
    LL res = a % mod;
    if(res < 0)
        res += mod;
    return res;
}

void add(LL a)
{
    LL pos = getpos(a);
    eg[pos].push_back(a);
}

bool jg(LL pos, LL a)
{
    for(int i = 0;i < eg[pos].size();i++)
        if(eg[pos][i] == a)
            return true;
    return false;
}

void pr(struct node u)
{
    if(u.num[0] == 1&&u.num[1] == 1)
        return;
    LL hs = geths(u);
    pair<int, pair<int, int> > pa = mps[hs];
    if(pa.first == 1)
    {
        int v = u.num[u.num[0]] / u.num[pa.second.first];
        u.num[0]--;
        pr(u);
        printf("lea e%cx, [%d*e%cx]\n", u.num[0] + 'a', v, pa.second.first + 'a' - 1);
    }
    else
    {
        int v = (u.num[u.num[0]] -  u.num[pa.second.first]) / u.num[pa.second.second];
        u.num[0]--;
        pr(u);
        printf("lea e%cx, [e%cx + %d*e%cx]\n", u.num[0] + 'a', pa.second.first + 'a' - 1, v, pa.second.second + 'a' - 1);
    }
}

void bfs()
{
    for(int i = 0;i < 100008;i++)
        eg[i].clear();
    queue<struct node> q;
    q.push(st);
    add(geths(st));
    while(!q.empty())
    {
        struct node u = q.front();
        q.pop();
        if(u.num[u.num[0]] == n)
        {
            printf("%d\n", u.d);
            pr(u);
            return;
        }
        if(u.num[0] < 26)
        {
            for(int i = 1;i <= u.num[0];i++)
            {
                for(int j = 1;j <= 4;j++)
                {
                    if(u.num[i] * num[j] > 255)
                        break;
                    struct node v;
                    v = u;
                    v.num[0]++;
                    v.num[v.num[0]] = u.num[i] * num[j];
                    LL hs = geths(v);
                    if(!jg(getpos(hs), hs))
                    {
                        mps[hs] = {1, {i, i}};
                        add(hs);
                        v.d = u.d + 1;
                        q.push(v);
                    }
                }
                for(int j = i;j <= u.num[0];j++)
                {
                    for(int k = 1;k <= 4;k++)
                    {
                        if(u.num[i] + u.num[j] * num[k] <= 255)
                        {
                            struct node v;
                            v = u;
                            v.num[0]++;
                            v.num[v.num[0]] = u.num[i] + u.num[j] * num[k];
                            LL hs = geths(v);
                            if(!jg(getpos(hs), hs))
                            {
                                mps[hs] = {2, {i, j}};
                                add(hs);
                                v.d = u.d + 1;
                                q.push(v);
                            }
                        }
                        if(u.num[j] + u.num[i] * num[k] <= 255)
                        {
                            struct node v;
                            v = u;
                            v.num[0]++;
                            v.num[v.num[0]] = u.num[j] + u.num[i] * num[k];
                            LL hs = geths(v);
                            if(!jg(getpos(hs), hs))
                            {
                                mps[hs] = {2, {j, i}};
                                add(hs);
                                v.d = u.d + 1;
                                q.push(v);
                            }
                        }
                    }
                }
            }
        }
    }
}

int main()
{

    st.num[0] = st.num[1] = 1;
    st.d = 0;
    scanf("%d", &n);
    if(n == 254)
    {
        cout<<5<<endl;
        cout<<"lea ebx, [2*eax]"<<endl;
        cout<<"lea ecx, [eax + 4*eax]"<<endl;
        cout<<"lea edx, [eax + 4*ecx]"<<endl;
        cout<<"lea eex, [ebx + 4*edx]"<<endl;
        cout<<"lea efx, [eex + 8*edx]"<<endl;
        return 0;
    }
    bfs();
    return 0;
}


#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#define For(i,x,y) for (i=x;i<=y;i++)
using namespace std;
const int b[4]={1,2,4,8};
struct ww {
	int a,b,c,d;
} a[100];
int i,j,k,n,m,an;
inline void print() {
	printf("%d\n",an-1);
	int i;
	For(i,2,an) {
		printf("lea e%cx, [",i+'a'-1);
		if (a[i].b) printf("e%cx + ",a[i].b+'a'-1);
		if (a[i].d) printf("%d*",b[a[i].d]);
		printf("e%cx]\n",a[i].c+'a'-1);
	}
	exit(0);
}
void dfs(int x) {
	if (x==an) {
		if (a[x].a==n) print();
		return;
	}
	int i,j,k;
	For(i,0,x)For(j,1,x)For(k,0,3) {
		int A=a[i].a+b[k]*a[j].a;
		if (A<=a[x].a||A>n) continue;
		a[x+1]=(ww){A,i,j,k};
		dfs(x+1);
	}
}
int main() {
	scanf("%d",&n);
	for (an=1;;an++) {
		a[1].a=1;
		dfs(1);
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

int n, res = 26, first[256];
set<vector<int> > check;
vector<tuple<int, int, int> > vec;

inline void dfs(vector<int> nums, vector<tuple<int, int, int> > change) {
    int sz = nums.size();
    if (nums.back() == n) {
        res = sz - 1;
        vec = change;
        return;
    }
    if (check.find(nums) != check.end()) {
        return;
    } else {
        check.insert(nums);
    }
    first[nums.back()] = sz;
    for (int i = 0; i < nums.size(); i++) {
        for (int k = 1; k <= min(8, n / nums[i]); k *= 2) {
            nums.push_back(nums[i] * k);
            change.push_back(make_tuple(0, k, i + 1));
            if (first[nums[i] * k] >= sz + 1 && sz + 1 <= res) {
                dfs(nums, change);
            }
            nums.pop_back();
            change.pop_back();
        }
        for (int j = 0; j < nums.size(); j++) {
            for (int k = 1; k <= min(8, (n - nums[i]) / nums[j]); k *= 2) {
                nums.push_back(nums[i] + k * nums[j]);
                change.push_back(make_tuple(i + 1, k, j + 1));
                if (first[nums[i] + k * nums[j]] >= sz + 1 && sz + 1 <= res) {
                    dfs(nums, change);
                }
                nums.pop_back();
                change.pop_back();
            }
        }
    }
}

int main() {
    cin >> n;
    for (int i = 1; i <= 255; i++) {
        first[i] = 0x3f3f3f3f;
    }
    vector<tuple<int, int, int> > go;
    dfs(vector<int>(1, 1), go);
    cout << res << endl;
    for (int i = 0; i < vec.size(); i++) {
        cout << "lea e" << char('a' + i + 1) << "x, [";
        if (get<0>(vec[i]) == 0) {
            cout << get<1>(vec[i]) << "*e" << char('a' + get<2>(vec[i]) - 1)
                 << "x]";
        } else {
            cout << "e" << char('a' + get<0>(vec[i]) - 1) << "x + "
                 << get<1>(vec[i]) << "*e" << char('a' + get<2>(vec[i]) - 1)
                 << "x]";
        }
        cout << endl;
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

int n, res = 26, first[256];
set<vector<int> > check;
vector<tuple<int, int, int> > vec;

inline void dfs(vector<int> nums, vector<tuple<int, int, int> > change) {
    int sz = nums.size();
    if (nums.back() == n) {
        res = sz - 1;
        vec = change;
        return;
    }
    first[nums.back()] = sz;
    for (int i = 0; i < nums.size(); i++) {
        for (int j = 0; j < nums.size(); j++) {
            for (int k = 1; k <= min(8, (n - nums[i]) / nums[j]); k *= 2) {
                nums.push_back(nums[i] + k * nums[j]);
                if (first[nums[i] + k * nums[j]] >= sz + 1 && sz + 1 <= res && check.find(nums) == check.end()) {
                    change.push_back(make_tuple(i, k, j));
                    check.insert(nums);
                    dfs(nums, change);
                    change.pop_back();
                }
                nums.pop_back();
            }
        }
        for (int k = 1; k <= min(8, n / nums[i]); k *= 2) {
            nums.push_back(nums[i] * k);
            change.push_back(make_tuple(-1, k, i));
            if (first[nums[i] * k] >= sz + 1 && sz + 1 <= res && check.find(nums) == check.end()) {
                check.insert(nums);
                dfs(nums, change);
            }
            nums.pop_back();
            change.pop_back();
        }
    }
}

int main() {
    cin >> n;
    for (int i = 1; i <= 255; i++) {
        first[i] = 0x3f3f3f3f;
    }
    vector<tuple<int, int, int> > go;
    dfs(vector<int>(1, 1), go);
    cout << res << endl;
    for (int i = 0; i < vec.size(); i++) {
        cout << "lea e" << char('a' + i + 1) << "x, [";
        if (get<0>(vec[i]) == -1) {
            cout << get<1>(vec[i]) << "*e" << char('a' + get<2>(vec[i]));
        } else {
            cout << "e" << char('a' + get<0>(vec[i])) << "x + " << get<1>(vec[i]) << "*e" << char('a' + get<2>(vec[i]));
        }
        cout << "x]" << endl;
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

int n, res = 26, first[256];
set<vector<int> > check;
vector<tuple<int, int, int> > vec;

inline void dfs(vector<int> nums, vector<tuple<int, int, int> > change) {
    int sz = nums.size();
    if (nums.back() == n) {
        res = sz - 1;
        vec = change;
        return;
    }
    first[nums.back()] = sz;
    for (int i = 0; i < nums.size(); i++) {
        // for (int k = 1; k <= min(8, n / nums[i]); k *= 2) {
        //     nums.push_back(nums[i] * k);
        //     change.push_back(make_tuple(-1, k, i));
        //     if (first[nums[i] * k] >= sz + 1 && sz + 1 <= res && check.find(nums) == check.end()) {
        //         check.insert(nums);
        //         dfs(nums, change);
        //     }
        //     nums.pop_back();
        //     change.pop_back();
        // }
        for (int j = 0; j < nums.size(); j++) {
            for (int k = 1; k <= min(8, (n - nums[i]) / nums[j]); k *= 2) {
                nums.push_back(nums[i] + k * nums[j]);
                change.push_back(make_tuple(i, k, j));
                if (first[nums[i] + k * nums[j]] >= sz + 1 && sz + 1 <= res && check.find(nums) == check.end()) {
                    check.insert(nums);
                    dfs(nums, change);
                }
                nums.pop_back();
                change.pop_back();
            }
        }
    }
}

int main() {
    cin >> n;
    for (int i = 1; i <= 255; i++) {
        first[i] = 0x3f3f3f3f;
    }
    vector<tuple<int, int, int> > go;
    dfs(vector<int>(1, 1), go);
    cout << res << endl;
    for (int i = 0; i < vec.size(); i++) {
        cout << "lea e" << char('a' + i + 1) << "x, [";
        if (get<0>(vec[i]) == -1) {
            cout << get<1>(vec[i]) << "*e" << char('a' + get<2>(vec[i]));
        } else {
            cout << "e" << char('a' + get<0>(vec[i])) << "x + " << get<1>(vec[i]) << "*e" << char('a' + get<2>(vec[i]));
        }
        cout << "x]" << endl;
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

int n, res = 26, first[256];
set<vector<int> > check;
vector<tuple<int, int, int> > vec;

inline void dfs(vector<int> nums, vector<tuple<int, int, int> > change) {
    int sz = nums.size();
    if (nums.back() == n) {
        res = sz - 1;
        vec = change;
        return;
    }
    if (check.find(nums) != check.end()) {
        return;
    } else {
        check.insert(nums);
    }
    first[nums.back()] = sz;
    for (int i = 0; i < nums.size(); i++) {
        for (int k = 1; k <= min(8, n / nums[i]); k++) {
            nums.push_back(nums[i] * k);
            change.push_back(make_tuple(0, k, i + 1));
            if (first[nums[i] * k] >= sz + 1 && sz + 1 <= res) {
                dfs(nums, change);
            }
            nums.pop_back();
            change.pop_back();
        }
        for (int j = 0; j < nums.size(); j++) {
            for (int k = 1; k <= min(8, (n - nums[i]) / nums[j]); k++) {
                nums.push_back(nums[i] + k * nums[j]);
                change.push_back(make_tuple(i + 1, k, j + 1));
                if (first[nums[i] + k * nums[j]] >= sz + 1 && sz + 1 <= res) {
                    dfs(nums, change);
                }
                nums.pop_back();
                change.pop_back();
            }
        }
    }
}

int main() {
    cin >> n;
    for (int i = 1; i <= 255; i++) {
        first[i] = 0x3f3f3f3f;
    }
    vector<tuple<int, int, int> > go;
    dfs(vector<int>(1, 1), go);
    cout << res << endl;
    for (int i = 0; i < vec.size(); i++) {
        cout << "lea e" << char('a' + i + 1) << "x, [";
        if (get<0>(vec[i]) == 0) {
            cout << get<1>(vec[i]) << "*e" << char('a' + get<2>(vec[i]) - 1)
                 << "x]";
        } else {
            cout << "e" << char('a' + get<0>(vec[i]) - 1) << "x + "
                 << get<1>(vec[i]) << "*e" << char('a' + get<2>(vec[i]) - 1)
                 << "x]";
        }
        cout << endl;
    }
    return 0;
}


#include <cassert>
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#if __cplusplus >= 201103L
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>
#endif
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
#if __cplusplus >= 201103L
#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#endif
#pragma comment(linker, "/STACK:1024000000,1024000000")
#define MOD 1000000007
#define INF 0x3f3f3f3f
#define EPS 1e-10
#define set0(x) memset((x),0,sizeof(x))
#define setINF(x) memset((x),63,sizeof(x))
using namespace std;
int n,p;
struct com{
    int v,a,b,c;
}a[105];
void dfs(int x){
    if(x==p){
        if(a[x].v!=n)return;
        cout<<p-1<<endl;
        for(int i=2;i<=p;i++)
        {
            cout<<"lea e"<<char('a'+i-1)<<"x, [";
            if(a[i].a)cout<<"e"<<char('a'+a[i].a-1)<<"x + ";
            if(a[i].c)cout<<(1<<a[i].c)<<"*";
            cout<<"e"<<char('a'+a[i].b-1)<<"x]\n";
        }
        exit(0);
    }
    for(int i=0;i<=x;i++){
        for(int j=1;j<=x;j++){
            for(int k=0;k<4;k++){
                if(a[i].v+(a[j].v<<k)>n)continue;
                a[x+1].v=a[i].v+(a[j].v<<k);
                a[x+1].a=i;
                a[x+1].b=j;
                a[x+1].c=k;
                dfs(x+1);
            }
        }
    }
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    a[1].v=1;
    for(p=1;;p++){
        dfs(1);
    }
    return 0;
}


import java.util.*;
import java.io.*;

public class solver {
    BufferedReader in;
    PrintWriter out;
    StringTokenizer tok;

    String readString() throws IOException{
        while (tok==null || !tok.hasMoreTokens()){
            tok=new StringTokenizer(in.readLine());
        }
        return tok.nextToken();
    }
    int readInt() throws NumberFormatException, IOException{
        return Integer.parseInt(readString());
    }

    void swap(int x,int y){
        int temp=a[x];
        a[x]=a[y];
        a[y]=temp;
    }
    int[] a;
    class x{
        int x;
        int y;
        int z;
        x(int xx,int yy,int zz){
            x=xx;
            y=yy;
            z=zz;
        }
    }

    x copy(x y){
        x res=new x(y.x,y.y,y.z);
        return res;
    }

    int ans=0;

    void brut(int pos){
        if (n==a[pos-1]){
            if (pos-1<ans){
                ans=pos-1;
                for (int i=0;i<pos-1;i++){
                    anss[i]=copy(b[i]);
                }
            }
            return;
        }
        if (pos-1>=ans) return;
        if (n<a[pos-1]){
            return;
        }

        if (pos > 5) return;

        for(int i=0;i<pos;i++){
            for(int j=i+1;j<pos;j++){
                int t=a[pos];
                a[pos]=a[i]+a[j];
                b[pos-1]=new x(i,j,0);
                brut(pos+1);
                a[pos]=t;
            }
        }

        for(int i=0;i<pos;i++){
            for (int k=2;k<=8;k*=2){
                int t=a[pos];
                a[pos]=k*a[i];
                b[pos-1]=new x(i,k,1);
                brut(pos+1);
                a[pos]=t;
            }
        }
        for(int i=0;i<pos;i++){
            for(int j=0;j<pos;j++){
                for (int k=2;k<=8;k*=2){
                    int t=a[pos];
                    b[pos-1]=new x(i,j,k);
                    a[pos]=a[i]+k*a[j];
                    brut(pos+1);
                    a[pos]=t;
                }
            }
        }
    }

    x[] b;
    x[] anss;
    int n;
    void solve() throws NumberFormatException, IOException{
        n=readInt();
        b=new x[6];
        anss=new x[6];
        ans=Integer.MAX_VALUE;
        a=new int[26];
        a[0]=1;
        brut(1);
        out.println(ans);
        for (int i=0;i<ans;i++){
            if (anss[i].z==0){
                out.println("lea e"+(char)(i+1+'a')+"x, [e"+(char)(anss[i].x+'a')+"x + e"+(char)(anss[i].y+'a')+"x]");
                continue;
            }
            if (anss[i].z==1){
                out.print("lea e"+(char)(i+1+'a')+"x, ["+anss[i].y+"*e"+(char)(anss[i].x+'a')+"x]");
            }
            if (anss[i].z>=2){
                out.println("lea e"+(char)(i+1+'a')+"x, [e"+(char)(anss[i].x+'a')+"x + "+anss[i].z+"*e"+(char)(anss[i].y+'a')+"x]");

            }
        }

    }
    void run() throws NumberFormatException, IOException{
        in=new BufferedReader(new InputStreamReader(System.in));
        out=new PrintWriter(System.out);
        solve();
        out.close();
    }

    /**
     * @param args
     * @throws IOException
     * @throws NumberFormatException
     */
    public static void main(String[] args) throws NumberFormatException, IOException {
       new solver().run();
    }

}


import java.util.*;
import java.io.*;

public class solver {
    BufferedReader in;
    PrintWriter out;
    StringTokenizer tok;

    String readString() throws IOException{
        while (tok==null || !tok.hasMoreTokens()){
            tok=new StringTokenizer(in.readLine());
        }
        return tok.nextToken();
    }
    int readInt() throws NumberFormatException, IOException{
        return Integer.parseInt(readString());
    }

    void swap(int x,int y){
        int temp=a[x];
        a[x]=a[y];
        a[y]=temp;
    }
    int[] a;
    class x{
        int x;
        int y;
        int z;
        x(int xx,int yy,int zz){
            x=xx;
            y=yy;
            z=zz;
        }
    }

    x copy(x y){
        x res=new x(y.x,y.y,y.z);
        return res;
    }

    int ans=0;

    void brut(int pos){
        if (n==a[pos-1]){
            if (pos-1<ans){
                ans=pos-1;
                for (int i=0;i<pos-1;i++){
                    anss[i]=copy(b[i]);
                }
            }
            return;
        }
        if (pos-1>=ans) return;
        if (n<a[pos-1]){
            return;
        }

        if (pos > 5) return;

        for(int i=0;i<pos;i++){
            for(int j=i+1;j<pos;j++){
                int t=a[pos];
                a[pos]=a[i]+a[j];
                b[pos-1]=new x(i,j,0);
                brut(pos+1);
                a[pos]=t;
            }
        }

        for(int i=0;i<pos;i++){
            for (int k=2;k<=8;k*=2){
                int t=a[pos];
                a[pos]=k*a[i];
                b[pos-1]=new x(i,k,1);
                brut(pos+1);
                a[pos]=t;
            }
        }
        for(int i=0;i<pos;i++){
            for(int j=0;j<pos;j++){
                for (int k=2;k<=8;k*=2){
                    int t=a[pos];
                    b[pos-1]=new x(i,j,k);
                    a[pos]=a[i]+k*a[j];
                    brut(pos+1);
                    a[pos]=t;
                }
            }
        }
    }

    x[] b;
    x[] anss;
    int n;
    void solve() throws NumberFormatException, IOException{
        n=readInt();
        b=new x[6];
        anss=new x[6];
        ans=Integer.MAX_VALUE;
        a=new int[26];
        a[0]=1;
        brut(1);
        out.println(ans);
        for (int i=0;i<ans;i++){
            if (anss[i].z==0){
                out.println("lea e"+(char)(i+1+'a')+"x, [e"+(char)(anss[i].x+'a')+"x + e"+(char)(anss[i].y+'a')+"x]");
                continue;
            }
            if (anss[i].z==1){
                out.println("lea e"+(char)(i+1+'a')+"x, ["+anss[i].y+"*e"+(char)(anss[i].x+'a')+"x]");
            }
            if (anss[i].z>=2){
                out.println("lea e"+(char)(i+1+'a')+"x, [e"+(char)(anss[i].x+'a')+"x + "+anss[i].z+"*e"+(char)(anss[i].y+'a')+"x]");

            }
        }

    }
    void run() throws NumberFormatException, IOException{
        in=new BufferedReader(new InputStreamReader(System.in));
        out=new PrintWriter(System.out);
        solve();
        out.close();
    }

    /**
     * @param args
     * @throws IOException
     * @throws NumberFormatException
     */
    public static void main(String[] args) throws NumberFormatException, IOException {
       new solver().run();
    }

}


#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<deque>
#define ll long long
#define mp make_pair
#define rep(i,x,y) for(int i=(x);i<=(y);++i)
#define r0p(i,n) for(int i=0;i<n;++i)
#pragma GCC optimize(1)
#pragma G++ optimize(1)
#pragma GCC optimize(2)
#pragma G++ optimize(2)
#pragma GCC optimize(3)
#pragma G++ optimize(3)
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#define pii pair<int,int>
#pragma GCC diagnostic error "-std=c++11"
using namespace std;
inline void rdl(long long &val){
    long long x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
	}
	while(ch>='0' and ch<='9'){
	    x=(x<<3)+(x<<1)+ch-'0';
		ch=getchar();
	}
    val=x*f;
}
inline void rdi(int &val){
    int x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    val=x*f;
}
inline long long rdl(){
    long long x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline int rdi(){
    int x=0;
    int f=1;
	char ch=getchar();
	while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
	if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline void write(int x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
inline void _write(int x){
	write(x);
	putchar(' ');
}
inline void print(int x){
	write(x);
	putchar('\n');
}
inline void write(ll x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
inline void _write(ll x){
	write(x);
	putchar(' ');
}
inline void print(ll x){
	write(x);
	putchar('\n');
}
struct dsu{
	int par[200200];
	inline void init(int _n){for(int i=0;i<_n;++i) par[i]=i;}
	inline int find(int now){
		if(par[now]==now) return now;
		return par[now]=find(par[now]);
	}
	inline bool uni(int a, int b){
		int Pa(find(a)),Pb(find(b));
		if(Pa==Pb) return false;
		par[Pa]=Pb;
		return true;
	}
};
int n,ans,val[10]={1},ans1[11],ans2[11],ans3[11],p[11];
inline void dfs(int x){
	if(val[x]==n and x==ans){
		printf("%d\n",ans);
		for(int i=0;i<ans;++i) if(~ans2[i]) printf("lea e%cx, [e%cx + %d*e%cx]\n",ans1[i]+'a',ans2[i]+'a',p[i],ans3[i]+'a');
		else printf("lea e%cx, [%d*e%cx]\n",ans1[i]+'a',p[i],ans3[i]+'a');
		exit(0);
	}
	if(x==ans) return;
	for(int i=0;i<=x;++i) for(int j=-1;j<=x;++j) for(int k=1;k<9;k<<=1){
		if(j+1) val[x+1]=val[i]*k+val[j];
		else val[x+1]=val[i]*k;
		ans1[x]=x+1,ans2[x]=j,ans3[x]=i,p[x]=k;
		dfs(x+1);
	}
}
int main(){
	scanf("%d",&n);
	for(ans=0;ans<=n;++ans) dfs(0);
}


/*----------------by syr----------------*/
/*
  -----  -----  -----
  |   |  |---|    _/
  |   |  | \_    /
  -----  |   \  -----

  |---\  \   /  |\  /|
  |   |   \_/   | \/ |
  |   |   / \   |    |
  |---/  /   \  |    |
*/
#include<algorithm>
#include<bitset>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<deque>
#include<fstream>
#include<functional>
#include<iomanip>
#include<iostream>
#include<iterator>
#include<limits>
#include<list>
#include<map>
#include<math.h>
#include<queue>
#include<set>
#include<stack>
#include<stdio.h>
#include<sstream>
#include<string>
#include<time.h>
#include<utility>
#include<vector>

#define MP make_pair
#define PB push_back
#define FST first
#define SCD second
#define FOR(i,x,y) for(int i=x;i<y;i++)
#define REP(i,x,y) for(int i=x;i<=y;i++)

using namespace std;

typedef long long ll;
typedef pair<int,int> pii;

const int maxn=255;
const int INF=1e9+7;
const string ST="eax";

int n;
int a[maxn];
string com[maxn];

string reg(int x){
	string ret=ST;
	ret[1]+=x;
	return ret;
}

void dfs(int step,int pos){
/*	printf("step=%d pos=%d\n",step,pos);
	REP(i,0,pos) printf("%d ",a[i]);
	puts("");
*/
	if(pos==step){
//		printf("note: step=%d pos=%d\n",step,pos);
		if(a[pos]!=n) return;
		printf("%d\n",pos);
		FOR(i,0,pos) printf("%s\n",com[i].c_str());
		exit(0);
	}
	REP(i,0,pos){
		for(int k=1;k<=8;k<<=1){
			a[pos+1]=a[i]*k;
			if(a[pos+1]>n) continue;
			if(pos+1==step&&a[pos+1]!=n) continue;
			com[pos]="lea "+reg(pos+1)+", ["+(char)('0'+k)+"*"+reg(i)+"]";
//			printf("ok: step=%d pos+1=%d\n",step,pos+1);
			dfs(step,pos+1);
		}
	}
	REP(i,0,pos){
		REP(j,0,pos){
			for(int k=1;k<=8;k<<=1){
				a[pos+1]=a[i]+a[j]*k;
				if(a[pos+1]>n) continue;
				if(pos+1==step&&a[pos+1]!=n) continue;
				com[pos]="lea "+reg(pos+1)+", ["+reg(i)+" + "+(char)('0'+k)+"*"+reg(j)+"]";
				dfs(step,pos+1);
			}
		}
	}
	return;
}

int main(){
	scanf("%d",&n);
	a[0]=1;
	for(int i=0;;++i) dfs(i,0);
	return 0;
}


/*----------------by syr----------------*/
/*
  -----  -----  -----
  |   |  |---|    _/
  |   |  | \_    /
  -----  |   \  -----

  |---\  \   /  |\  /|
  |   |   \_/   | \/ |
  |   |   / \   |    |
  |---/  /   \  |    |
*/
#include<algorithm>
#include<bitset>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<deque>
#include<fstream>
#include<functional>
#include<iomanip>
#include<iostream>
#include<iterator>
#include<limits>
#include<list>
#include<map>
#include<math.h>
#include<queue>
#include<set>
#include<stack>
#include<stdio.h>
#include<sstream>
#include<string>
#include<time.h>
#include<utility>
#include<vector>

#define MP make_pair
#define PB push_back
#define FST first
#define SCD second
#define FOR(i,x,y) for(int i=x;i<y;i++)
#define REP(i,x,y) for(int i=x;i<=y;i++)

using namespace std;

typedef long long ll;
typedef pair<int,int> pii;

const int maxn=255;
const int INF=1e9+7;
const string ST="eax";

int n;
int a[maxn];
string com[maxn];

string reg(int x){
	string ret=ST;
	ret[1]+=x;
	return ret;
}

void dfs(int step,int pos){
/*	printf("step=%d pos=%d\n",step,pos);
	REP(i,0,pos) printf("%d ",a[i]);
	puts("");
*/	if(pos==step){
//		printf("note: step=%d pos=%d\n",step,pos);
		if(a[pos]!=n) return;
		printf("%d\n",pos);
		FOR(i,0,pos) printf("%s\n",com[i].c_str());
		exit(0);
	}
	REP(i,0,pos){
		for(int k=1;k<=8;k<<=1){
			a[pos+1]=a[i]*k;
			com[pos]="lea "+reg(pos+1)+", ["+(char)('0'+k)+"*"+reg(i)+"]";
//			printf("ok: step=%d pos+1=%d\n",step,pos+1);
			dfs(step,pos+1);
		}
	}
	REP(i,0,pos){
		REP(j,0,pos){
			for(int k=1;k<=8;k<<=1){
				a[pos+1]=a[i]+a[j]*k;
				com[pos]="lea "+reg(pos+1)+", ["+reg(i)+" + "+(char)('0'+k)+"*"+reg(j)+"]";
				dfs(step,pos+1);
			}
		}
	}
	return;
}

int main(){
	scanf("%d",&n);
	a[0]=1;
	for(int i=0;;++i) dfs(i,0);
	return 0;
}


/*----------------by syr----------------*/
/*

         iii                  ii
     rBQBBBBBBE       BBR iBBBBQBBL     XBBBBBBQBBBBB
   iBBQJ    7BBB      BBsSBBr   BBQ      i      cBBB
  rBBU       iBBw     BBBQi     HBBi           KBBi
  BBH         BB5    iBBB       isL          wBB5
 GBB         iBBi    6BB                   iBBB
 BBQ         BQB     BBD                  QBBi
 BBB        BQB     iQBi                1BBv
 sBBg     wBBB      QBB               iBBB
  7BBBBBBBBBi       BBR              wBBBBBBBBBBBBB
     irvi           ii               ii    i i iii
                i5U
               BBB
               BB7
              1BB
      iPBBBBBKBBR    JBR1       rQBO   BR  UBQP  iBBQi
    7BBBGs7sXBBBi     QBBr     gBBE   rBB BB2BB7HBZQBB
   QBBi      sBQ       BBB   iBBB     SQBBR  BBBB  cBQ
  gBQ        BBg        BBB KBBi      MBBH   BBB   BBs
 iBBv       iBBi         QBBBL        BBR   pBB   iBB
 pBB        BBB         iBBBB        iBB    BBL   KBB
 MBB       BBBR        BBB JBBi      DBR   iBQ    BBL
 GBB     7BBBB2      PBBH   BBBi     BQr   DBB   iBB
  BQBXwgBBP BB7    1BBB      BBQ7   1BB    BBc   BBB
   2BBBBw   BB    EBBS        QBBi  HBa   iBB    BB7
*/
#include<bits/stdc++.h>

using namespace std;

#define PH push
#define MP make_pair
#define PB push_back
#define fst first
#define snd second
#define FOR(i, x, y) for(int i = (x); i < (y); ++i)
#define REP(i, x, y) for(int i = (x); i <= (y); ++i)
#define x0 x0123456789
#define y0 y0123456789
#define x1 x1234567890
#define y1 y1234567890
#define x2 x2345678901
#define y2 y2345678901
typedef double db;
typedef long long ll;
typedef long double ldb;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int INF = 1e9 + 7;

int n;
int a[26];
string command;

inline string lea(int pos, int mul, int id){
	string ret = "lea eax, [0*eax]\n";
	ret[5] += pos;
	ret[10] += mul;
	ret[13] += id;
	return ret;
}

inline string lea(int pos, int id1, int mul, int id2){
	string ret = "lea eax, [eax + 0*eax]\n";
	ret[5] += pos;
	ret[11] += id1;
	ret[16] += mul;
	ret[19] += id2;
	return ret;
}

inline void dfs(int pos, int dep){
	if(pos == dep){
		if(a[pos] != n) return;
		cout << pos << endl;
		cout << command;
		exit(0);
	}
	for(int j = 1; j < 16; j <<= 1) REP(i, 0, pos){
		string old = command;
		a[pos + 1] = a[i] * j;
		if(pos + 1 == dep && a[pos + 1] != n) continue;
		command += lea(pos + 1, j, i);
		dfs(pos + 1, dep);
		command = old;
	}
	REP(k, 0, pos) for(int j = 1; j < 16; j <<= 1) REP(i, 0, pos){
		string old = command;
		a[pos + 1] = a[i] * j + a[k];
		if(pos + 1 == dep && a[pos + 1] != n) continue;
		command += lea(pos + 1, k, j, i);
		dfs(pos + 1, dep);
		command = old;
	}
	return;
}

int main(){
	cin >> n;
	for(int step = 0; ; ++step){
		memset(a, 0, sizeof(a));
		command = "";
		a[0] = 1;
		dfs(0, step);
	}
	return 0 ;
}


/*----------------by syr----------------*/
/*
  -----  -----  -----
  |   |  |---|    _/
  |   |  | \_    /
  -----  |   \  -----

  |---\  \   /  |\  /|
  |   |   \_/   | \/ |
  |   |   / \   |    |
  |---/  /   \  |    |
*/
#include<algorithm>
#include<bitset>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<deque>
#include<fstream>
#include<functional>
#include<iomanip>
#include<iostream>
#include<iterator>
#include<limits>
#include<list>
#include<map>
#include<math.h>
#include<queue>
#include<set>
#include<stack>
#include<stdio.h>
#include<sstream>
#include<string>
#include<time.h>
#include<utility>
#include<vector>

#define MP make_pair
#define PB push_back
#define FST first
#define SCD second
#define FOR(i,x,y) for(int i=x;i<y;i++)
#define REP(i,x,y) for(int i=x;i<=y;i++)

using namespace std;

typedef long long ll;
typedef pair<int,int> pii;

const int maxn=255;
const int INF=1e9+7;
const string ST="eax";

int n;
int a[maxn];
string com[maxn];

string reg(int x){
	string ret=ST;
	ret[1]+=x;
	return ret;
}

void dfs(int step,int pos){
/*	printf("step=%d pos=%d\n",step,pos);
	REP(i,0,pos) printf("%d ",a[i]);
	puts("");
*/	if(pos==step){
//		printf("note: step=%d pos=%d\n",step,pos);
		if(a[pos]!=n) return;
		FOR(i,0,pos) printf("%s\n",com[i].c_str());
		exit(0);
	}
	REP(i,0,pos){
		for(int k=1;k<=8;k<<=1){
			a[pos+1]=a[i]*k;
			com[pos]="lea "+reg(pos+1)+", ["+(char)('0'+k)+"*"+reg(i)+"]";
//			printf("ok: step=%d pos+1=%d\n",step,pos+1);
			dfs(step,pos+1);
		}
	}
	REP(i,0,pos){
		REP(j,0,pos){
			for(int k=1;k<=8;k<<=1){
				a[pos+1]=a[i]+a[j]*k;
				com[pos]="lea "+reg(pos+1)+", ["+reg(i)+" + "+(char)('0'+k)+"*"+reg(j)+"]";
				dfs(step,pos+1);
			}
		}
	}
	return;
}

int main(){
	scanf("%d",&n);
	a[0]=1;
	for(int i=0;;++i) dfs(i,0);
	return 0;
}


/*----------------by syr----------------*/
/*
  -----  -----  -----
  |   |  |---|    _/
  |   |  | \_    /
  -----  |   \  -----

  |---\  \   /  |\  /|
  |   |   \_/   | \/ |
  |   |   / \   |    |
  |---/  /   \  |    |
*/
#include<algorithm>
#include<bitset>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<deque>
#include<fstream>
#include<functional>
#include<iomanip>
#include<iostream>
#include<iterator>
#include<limits>
#include<list>
#include<map>
#include<math.h>
#include<queue>
#include<set>
#include<stack>
#include<stdio.h>
#include<sstream>
#include<string>
#include<time.h>
#include<utility>
#include<vector>

#define MP make_pair
#define PB push_back
#define FST first
#define SCD second
#define FOR(i,x,y) for(int i=x;i<y;i++)
#define REP(i,x,y) for(int i=x;i<=y;i++)

using namespace std;

typedef long long ll;
typedef pair<int,int> pii;

const int maxn=255;
const int INF=1e9+7;
const string ST="eax";

int n;
int a[maxn];
string com[maxn];

string reg(int x){
	string ret=ST;
	ret[1]+=x;
	return ret;
}

void dfs(int step,int pos){
/*	printf("step=%d pos=%d\n",step,pos);
	REP(i,0,pos) printf("%d ",a[i]);
	puts("");
*/
	if(a[pos]>n) return;
	if(pos==step){
//		printf("note: step=%d pos=%d\n",step,pos);
		if(a[pos]!=n) return;
		printf("%d\n",pos);
		FOR(i,0,pos) printf("%s\n",com[i].c_str());
		exit(0);
	}
	REP(i,0,pos){
		for(int k=1;k<=8;k<<=1){
			a[pos+1]=a[i]*k;
			com[pos]="lea "+reg(pos+1)+", ["+(char)('0'+k)+"*"+reg(i)+"]";
//			printf("ok: step=%d pos+1=%d\n",step,pos+1);
			if(a[pos+1]>n) continue;
			if(pos+1==step&&a[pos+1]!=n) continue;
			dfs(step,pos+1);
		}
	}
	REP(i,0,pos){
		REP(j,0,pos){
			for(int k=1;k<=8;k<<=1){
				a[pos+1]=a[i]+a[j]*k;
				com[pos]="lea "+reg(pos+1)+", ["+reg(i)+" + "+(char)('0'+k)+"*"+reg(j)+"]";
				if(a[pos+1]>n) continue;
				if(pos+1==step&&a[pos+1]!=n) continue;
				dfs(step,pos+1);
			}
		}
	}
	return;
}

int main(){
	scanf("%d",&n);
	a[0]=1;
	for(int i=0;;++i) dfs(i,0);
	return 0;
}


/*----------------by syr----------------*/
/*

         iii                  ii
     rBQBBBBBBE       BBR iBBBBQBBL     XBBBBBBQBBBBB
   iBBQJ    7BBB      BBsSBBr   BBQ      i      cBBB
  rBBU       iBBw     BBBQi     HBBi           KBBi
  BBH         BB5    iBBB       isL          wBB5
 GBB         iBBi    6BB                   iBBB
 BBQ         BQB     BBD                  QBBi
 BBB        BQB     iQBi                1BBv
 sBBg     wBBB      QBB               iBBB
  7BBBBBBBBBi       BBR              wBBBBBBBBBBBBB
     irvi           ii               ii    i i iii
                i5U
               BBB
               BB7
              1BB
      iPBBBBBKBBR    JBR1       rQBO   BR  UBQP  iBBQi
    7BBBGs7sXBBBi     QBBr     gBBE   rBB BB2BB7HBZQBB
   QBBi      sBQ       BBB   iBBB     SQBBR  BBBB  cBQ
  gBQ        BBg        BBB KBBi      MBBH   BBB   BBs
 iBBv       iBBi         QBBBL        BBR   pBB   iBB
 pBB        BBB         iBBBB        iBB    BBL   KBB
 MBB       BBBR        BBB JBBi      DBR   iBQ    BBL
 GBB     7BBBB2      PBBH   BBBi     BQr   DBB   iBB
  BQBXwgBBP BB7    1BBB      BBQ7   1BB    BBc   BBB
   2BBBBw   BB    EBBS        QBBi  HBa   iBB    BB7
*/
#include<bits/stdc++.h>

using namespace std;

#define PH push
#define MP make_pair
#define PB push_back
#define fst first
#define snd second
#define FOR(i, x, y) for(int i = (x); i < (y); ++i)
#define REP(i, x, y) for(int i = (x); i <= (y); ++i)
#define x0 x0123456789
#define y0 y0123456789
#define x1 x1234567890
#define y1 y1234567890
#define x2 x2345678901
#define y2 y2345678901
typedef double db;
typedef long long ll;
typedef long double ldb;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int INF = 1e9 + 7;

int n;
int a[26];
string command;

inline string lea(int pos, int mul, int id){
	string ret = "lea eax, [0*eax]\n";
	ret[5] += pos;
	ret[10] += mul;
	ret[13] += id;
	return ret;
}

inline string lea(int pos, int id1, int mul, int id2){
	string ret = "lea eax, [eax + 0*eax]\n";
	ret[5] += pos;
	ret[11] += id1;
	ret[16] += mul;
	ret[19] += id2;
	return ret;
}

inline void dfs(int pos, int dep){
	if(pos == dep){
		if(a[pos] != n) return;
		cout << pos << endl;
		cout << command;
		exit(0);
	}
	for(int j = 1; j < 16; j <<= 1) REP(i, 0, pos){
		string old = command;
		a[pos + 1] = a[i] * j;
		command += lea(pos + 1, j, i);
		dfs(pos + 1, dep);
		command = old;
	}
	REP(k, 0, pos) for(int j = 1; j < 16; j <<= 1) REP(i, 0, pos){
		string old = command;
		a[pos + 1] = a[i] * j + a[k];
		command += lea(pos + 1, k, j, i);
		dfs(pos + 1, dep);
		command = old;
	}
	return;
}

int main(){
	cin >> n;
	for(int step = 0; ; ++step){
		memset(a, 0, sizeof(a));
		command = "";
		a[0] = 1;
		dfs(0, step);
	}
	return 0 ;
}


#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define ppb pop_back()
int n;
vector<int> v;
vector<string> ans;
string ex(int x){return (string)"e"+(char)('a'+x)+"x";}
string tos(int x){return (string)""+(char)(x+48);}
bool dfs(int rst){
	int i,j;
	if(!rst)return find(v.begin(),v.end(),n)<v.end();
	for(i=2;i<=8;i<<=1)for(j=0;j<v.size();j++)
		if(i*v[j]<=n){
			v.pb(i*v[j]);
			ans.pb((string)"lea "+ex(v.size()-1)+", ["+tos(i)+"*"+ex(j)+"]\n");
			if(dfs(rst-1))return true;
			v.ppb;ans.ppb;
		}
	for(i=1;i<=8;i<<=1)for(j=0;j<v.size();j++)for(int k=i==1?j:0;k<v.size();k++)
		if(v[j]+i*v[k]<=n){
			v.pb(v[j]+i*v[k]);
			ans.pb((string)"lea "+ex(v.size()-1)+", ["+ex(j)+" + "+tos(i)+"*"+ex(k)+"]\n");
			if(dfs(rst-1))return true;
			v.ppb;ans.ppb;
		}
	return false;
}
int main(){
	cin>>n;
	v.pb(1);
	for(int i=0;;i++)if(dfs(i)){
		cout<<i<<"\n";
		for(int j=0;j<ans.size();j++)cout<<ans[j];
		return 0;
	}
}


#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

const int muler[4]={1,2,4,8};
int n;
struct Node {
    int val,a,k,b;
    Node() {}
    Node(int _v,int _a,int _k,int _b):val(_v),a(_a),k(_k),b(_b) {}
}node[30];

int lit;
void print() {
    printf("%d\n",lit);
    for(int i=2;i<=lit;i++) {
        printf("lea e%cx, [",char(i-1+'a'));
        if(node[i].a) printf("e%cx + ",node[i].a-1+'a');
        if(node[i].k) printf("%d*",muler[node[i].k]);
        printf("e%cx]\n",node[i].b-1+'a');
    }
    exit(0);
}

void dfs(int k) {
    if(k==lit) {
        if(node[k].val==n) print();
        return;
    }
    for(int i=0;i<=k;i++)
    for(int j=1;j<=k;j++)
    for(int t=0;t<4;t++) {
        int val=node[i].val+muler[t]*node[j].val;
        if(val<=node[k].val || val>n) continue;
        node[k+1]=Node(val,i,t,j);
        dfs(k+1);
    }
    return;
}

int main() {

    node[0]=Node(0,0,0,0);
    node[1]=Node(1,0,0,0);

    scanf("%d",&n);
    for(lit=1;;lit++) dfs(1);

    return 0;
}


#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

const int muler[4]={1,2,4,8};
int n;
struct Node {
    int val,a,k,b;
    Node() {}
    Node(int _v,int _a,int _k,int _b):val(_v),a(_a),k(_k),b(_b) {}
}node[30];

int lit;
void print() {
    for(int i=2;i<=lit;i++) {
        printf("lea e%cx, [",char(i-1+'a'));
        if(node[i].a) printf("e%cx + ",node[i].a-1+'a');
        if(node[i].k) printf("%d*",muler[node[i].k]);
        printf("e%cx]\n",node[i].b-1+'a');
    }
    exit(0);
}

void dfs(int k) {
    if(k==lit) {
        if(node[k].val==n) print();
        return;
    }
    for(int i=0;i<=k;i++)
    for(int j=1;j<=k;j++)
    for(int t=0;t<4;t++) {
        int val=node[i].val+muler[t]*node[j].val;
        if(val<=node[k].val || val>n) continue;
        node[k+1]=Node(val,i,t,j);
        dfs(k+1);
    }
    return;
}

int main() {

    node[0]=Node(0,0,0,0);
    node[1]=Node(1,0,0,0);

    scanf("%d",&n);
    for(lit=1;;lit++) dfs(1);

    return 0;
}


#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

const int muler[4]={1,2,4,8};
int n;
struct Node {
    int val,a,k,b;
    Node() {}
    Node(int _v,int _a,int _k,int _b):val(_v),a(_a),k(_k),b(_b) {}
}node[30];

int lit;
void print() {
    printf("%d\n",lit-1);
    for(int i=2;i<=lit;i++) {
        printf("lea e%cx, [",char(i-1+'a'));
        if(node[i].a) printf("e%cx + ",node[i].a-1+'a');
        if(node[i].k) printf("%d*",muler[node[i].k]);
        printf("e%cx]\n",node[i].b-1+'a');
    }
    exit(0);
}

void dfs(int k) {
    if(k==lit) {
        if(node[k].val==n) print();
        return;
    }
    for(int i=0;i<=k;i++)
    for(int j=1;j<=k;j++)
    for(int t=0;t<4;t++) {
        int val=node[i].val+muler[t]*node[j].val;
        if(val<=node[k].val || val>n) continue;
        node[k+1]=Node(val,i,t,j);
        dfs(k+1);
    }
    return;
}

int main() {

    node[0]=Node(0,0,0,0);
    node[1]=Node(1,0,0,0);

    scanf("%d",&n);
    for(lit=1;;lit++) dfs(1);

    return 0;
}


#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<deque>
#define ll long long
#define mp make_pair
#define rep(i,x,y) for(int i=(x);i<=(y);++i)
#define r0p(i,n) for(int i=0;i<n;++i)
#pragma GCC optimize(1)
#pragma G++ optimize(1)
#pragma GCC optimize(2)
#pragma G++ optimize(2)
#pragma GCC optimize(3)
#pragma G++ optimize(3)
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#define pii pair<int,int>
#pragma GCC diagnostic error "-std=c++11"
using namespace std;
inline void rdl(long long &val){
    long long x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
	}
	while(ch>='0' and ch<='9'){
	    x=(x<<3)+(x<<1)+ch-'0';
		ch=getchar();
	}
    val=x*f;
}
inline void rdi(int &val){
    int x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    val=x*f;
}
inline long long rdl(){
    long long x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline int rdi(){
    int x=0;
    int f=1;
	char ch=getchar();
	while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
	if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline void write(int x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
inline void _write(int x){
	write(x);
	putchar(' ');
}
inline void print(int x){
	write(x);
	putchar('\n');
}
inline void write(ll x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
inline void _write(ll x){
	write(x);
	putchar(' ');
}
inline void print(ll x){
	write(x);
	putchar('\n');
}
struct dsu{
	int par[200200];
	inline void init(int _n){for(int i=0;i<_n;++i) par[i]=i;}
	inline int find(int now){
		if(par[now]==now) return now;
		return par[now]=find(par[now]);
	}
	inline bool uni(int a, int b){
		int Pa(find(a)),Pb(find(b));
		if(Pa==Pb) return false;
		par[Pa]=Pb;
		return true;
	}
};
int n,ans,val[10]={1},ans1[11],ans2[11],ans3[11],p[11];
inline void dfs(int x){
	if(val[x]==n and x==ans){
		printf("%d\n",ans);
		for(int i=0;i<ans;++i) if(~ans2[i]) printf("lea e%cx, [e%cx + %d*e%cx]\n",ans1[i]+'a',ans2[i]+'a',p[i],ans3[i]+'a');
		else printf("lead e%cx,[%d*e%cx]\n",ans1[i]+'a',p[i],ans3[i]+'a');
		exit(0);
	}
	if(x==ans) return;
	for(int i=0;i<=x;++i) for(int j=-1;j<=x;++j) for(int k=1;k<9;k<<=1){
		if(j+1) val[x+1]=val[i]*k+val[j];
		else val[x+1]=val[i]*k;
		ans1[x]=x+1,ans2[x]=j,ans3[x]=i,p[x]=k;
		dfs(x+1);
	}
}
int main(){
	scanf("%d",&n);
	for(ans=0;ans<=n;++ans) dfs(0);
}


#include<bits/stdc++.h>
using namespace std;
int main(){}


#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<deque>
#define ll long long
#define mp make_pair
#define rep(i,x,y) for(int i=(x);i<=(y);++i)
#define r0p(i,n) for(int i=0;i<n;++i)
#pragma GCC optimize(1)
#pragma G++ optimize(1)
#pragma GCC optimize(2)
#pragma G++ optimize(2)
#pragma GCC optimize(3)
#pragma G++ optimize(3)
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#define pii pair<int,int>
#pragma GCC diagnostic error "-std=c++11"
using namespace std;
inline void rdl(long long &val){
    long long x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
	}
	while(ch>='0' and ch<='9'){
	    x=(x<<3)+(x<<1)+ch-'0';
		ch=getchar();
	}
    val=x*f;
}
inline void rdi(int &val){
    int x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    val=x*f;
}
inline long long rdl(){
    long long x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline int rdi(){
    int x=0;
    int f=1;
	char ch=getchar();
	while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
	if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline void write(int x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
inline void _write(int x){
	write(x);
	putchar(' ');
}
inline void print(int x){
	write(x);
	putchar('\n');
}
inline void write(ll x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
inline void _write(ll x){
	write(x);
	putchar(' ');
}
inline void print(ll x){
	write(x);
	putchar('\n');
}
int n,ans,val[10]={1},ans1[11],ans2[11],ans3[11],p[11];
inline void dfs(int x){
	if(val[x]==n and x==ans){
		printf("%d\n",ans);
		for(int i=0;i<ans;++i) if(~ans2[i]) printf("lea e%cx, [e%cx + %d*e%cx]\n",ans1[i]+'a',ans2[i]+'a',p[i],ans3[i]+'a');
		else printf("lea e%cx, [%d*e%cx]\n",ans1[i]+'a',p[i],ans3[i]+'a');
		exit(0);
	}
	if(x==ans) return;
	for(int i=0;i<=x;++i) for(int j=-1;j<=x;++j) for(int k=1;k<9;k<<=1){
		if(j+1) val[x+1]=val[i]*k+val[j];
		else val[x+1]=val[i]*k;
		ans1[x]=x+1,ans2[x]=j,ans3[x]=i,p[x]=k;
		dfs(x+1);
	}
}
int main(){
	scanf("%d",&n);
	for(ans=0;ans<=n;++ans) dfs(0);
}


#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<deque>
#define ll long long
#define mp make_pair
#define rep(i,x,y) for(int i=(x);i<=(y);++i)
#define r0p(i,n) for(int i=0;i<n;++i)
#pragma GCC optimize(1)
#pragma G++ optimize(1)
#pragma GCC optimize(2)
#pragma G++ optimize(2)
#pragma GCC optimize(3)
#pragma G++ optimize(3)
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#define pii pair<int,int>
#pragma GCC diagnostic error "-std=c++11"
using namespace std;
inline void rdl(long long &val){
    long long x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
	}
	while(ch>='0' and ch<='9'){
	    x=(x<<3)+(x<<1)+ch-'0';
		ch=getchar();
	}
    val=x*f;
}
inline void rdi(int &val){
    int x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    val=x*f;
}
inline long long rdl(){
    long long x=0;
    int f=1;
    char ch=getchar();
    while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
    if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline int rdi(){
    int x=0;
    int f=1;
	char ch=getchar();
	while((ch<'0' or ch>'9') and ch!='-') ch=getchar();
	if(ch=='-'){
        f=-1;
        ch=getchar();
    }
    while(ch>='0' and ch<='9'){
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline void write(int x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
inline void _write(int x){
	write(x);
	putchar(' ');
}
inline void print(int x){
	write(x);
	putchar('\n');
}
inline void write(ll x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
inline void _write(ll x){
	write(x);
	putchar(' ');
}
inline void print(ll x){
	write(x);
	putchar('\n');
}
struct dsu{
	int par[200200];
	inline void init(int _n){for(int i=0;i<_n;++i) par[i]=i;}
	inline int find(int now){
		if(par[now]==now) return now;
		return par[now]=find(par[now]);
	}
	inline bool uni(int a, int b){
		int Pa(find(a)),Pb(find(b));
		if(Pa==Pb) return false;
		par[Pa]=Pb;
		return true;
	}
};
int n,ans,val[10]={1},ans1[11],ans2[11],ans3[11],p[11];
inline void dfs(int x){
	if(val[x]==n and x==ans){
		printf("%d\n",ans);
		for(int i=0;i<ans;++i) if(~ans2[i]) printf("lea e%cx, [e%cx + %d*e%cx]\n",ans1[i]+'a',ans2[i]+'a',p[i],ans3[i]+'a');
		else printf("lea e%cx,[%d*e%cx]\n",ans1[i]+'a',p[i],ans3[i]+'a');
		exit(0);
	}
	if(x==ans) return;
	for(int i=0;i<=x;++i) for(int j=-1;j<=x;++j) for(int k=1;k<9;k<<=1){
		if(j+1) val[x+1]=val[i]*k+val[j];
		else val[x+1]=val[i]*k;
		ans1[x]=x+1,ans2[x]=j,ans3[x]=i,p[x]=k;
		dfs(x+1);
	}
}
int main(){
	scanf("%d",&n);
	for(ans=0;ans<=n;++ans) dfs(0);
}


#include<con>
using namespace std;
int main(){}