Two choices:

- spend 1 step, +1 （just type A）
- spend n+1 (n>=1) steps, *n （CtrlA, CtrlC, then CtrlV for n-1 times）

```
public class Solution {
public int maxA(int N) {
int[] f=new int[N+1];
for (int i=1;i<=N;i++)
{
f[i]=f[i-1]+1;
for (int j=3;j<i;j++) f[i]=Math.max(f[i],f[i-j]*(j-1));
}
return f[N];
}
}
```