/*
    题意:每一天,可升级1,或者做L个食物。但每天至少要有ai的食物存量
          问N天后的最多食物 N<=10^5
    很容易想到N^2的DP 肯定TLE
    用贪心做!
    N天都不升级,结果为NL
    前面t天用来升级,结果为(N-t)(L+t) = NL + t(N-L-t)  最后结果可以增加
    一种贪心思路:
    应该尽量早的升级,不得以才放弃升级,改成准备食物,当然最后几天可能都准备食物比较好

    用一个栈来记录实现
*/

#include
<cstdio>
#include
<stack>

using namespace std;

int main()
{
    
//freopen("in","r",stdin);
    int N;
    
int x,L;
    
while(~scanf("%d%d",&N,&L))
    
{
        
long long ans = 0,sum=0;
        stack
<int>S;
        
for(int i=1;i<=N;i++)
        
{
            scanf(
"%d",&x);
            
if(ans!=-1)
            
{
                sum
=sum+x;
                S.push(i);
                
while(!S.empty()&&ans<sum)
                
{
                    
//直接ans+=会wa  可能溢出的问题
                    ans=ans+(L+S.size()-1)-(i-S.top());
                    
//还要-(i-S.top()) 因为由于S.top()这一天没有升级,所以(S.top(),i]用的L减1了
                    S.pop();
                }

                
if(S.empty()&&ans<sum)ans=-1;
            }

        }

        
if(ans==-1)puts("Myon");
        
else
        
{
            
while(!S.empty()&&(L+S.size()-1)>(N-S.top()))
            
{
                ans
=ans+(L+S.size()-1)-(N-S.top());
                S.pop();
            }

            printf(
"%lld\n",ans-sum);
        }

    }

    
return 0;
}