#nullable enable #region var _input = Array.Empty(); var _iter = 0; string String() { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Split(' '), 0); return _input[_iter++]; } T I() where T : IParsable => T.Parse(String(), null); #endregion static T[] Range(int n, Func F) => Enumerable.Range(0, n).Select(_ => F()).ToArray(); var n = I(); var opz = Range(n, () => (String(), I())); var ans = new List(); var divided = false; for (var i = 1; i <= n; i++) { var (op, v) = opz[i - 1]; if (op == "*") ans.Add($"mul a a A[{i}]"); else if (op == "+") { if (divided) { ans.Add($"mul c b A[{i}]"); ans.Add($"add a a c"); } else ans.Add($"add a a A[{i}]"); } else { if (divided) ans.Add($"mul b b A[{i}]"); else ans.Add($"add b b A[{i}]"); divided = true; } } if (divided) ans.Add($"div a a b"); Console.WriteLine(ans.Count); Console.WriteLine(string.Join(Environment.NewLine, ans));