You are given a string $s$ consisting of $n$ lowercase Latin letters.

You have to remove at most one (i.e. zero or one) character of this string in such a way that the string you obtain will be lexicographically smallest among all strings that can be obtained using this operation.

String $s = s_1 s_2 \dots s_n$ is lexicographically smaller than string $t = t_1 t_2 \dots t_m$ if $n < m$ and $s_1 = t_1, s_2 = t_2, \dots, s_n = t_n$ or there exists a number $p$ such that $p \le min(n, m)$ and $s_1 = t_1, s_2 = t_2, \dots, s_{p-1} = t_{p-1}$ and $s_p < t_p$.

For example, "aaa" is smaller than "aaaa", "abb" is smaller than "abc", "pqr" is smaller than "z".


-----Input-----

The first line of the input contains one integer $n$ ($2 \le n \le 2 \cdot 10^5$) — the length of $s$.

The second line of the input contains exactly $n$ lowercase Latin letters — the string $s$.


-----Output-----

Print one string — the smallest possible lexicographically string that can be obtained by removing at most one character from the string $s$.


-----Examples-----
Input
3
aaa

Output
aa

Input
5
abcda

Output
abca



-----Note-----

In the first example you can remove any character of $s$ to obtain the string "aa".

In the second example "abca" < "abcd" < "abcda" < "abda" < "acda" < "bcda".

Difficulty: interview

Starter code:

Solutions:
n = int(input())
s = input()
for i in range(len(s) - 1):
	if s[i] > s[i + 1]:
		print(s[:i] + s[i + 1:len(s)])
		return
print(s[:len(s) - 1])


n = int(input())
s = input().strip()

for i in range(len(s) - 1):
    if s[i] > s[i + 1]:
        print(s[:i] + s[i+1:])
        return
print(s[:-1])


n=input()
s = input()
for i in range(len(s) - 1):
    if s[i+1] < s[i]:
        print(s[:i] + s[i+1:])
        return

print(s[:len(s) - 1])

import sys, math

def mp():
    return list(map(int, input().split()))

def main():
    n = int(input())
    a = input()
    for i in range(len(a) - 1):
        if a[i] > a[i + 1]:
            print(a[:i] + a[i + 1:])
            return
    print(a[:len(a) - 1])
main()

n = int(input())
t = input()
for i in range(n-1):
    if t[i] > t[i+1]:
        t = t[:i]+t[i+1:]
        break
if len(t) == n:
    print(t[:n-1])
else:
    print(t)


n = int(input())
s = input()
alth = "abcdefghijklmnopqrstuvwxyz"
ans = n-1
for i in range(1,n):
    if alth.find(s[i]) < alth.find(s[i-1]) :
        ans = i-1
        break

for i in range(n):
    if i != ans:
        print(s[i],end="")


n = int(input())
s = input()
p=''
for i in range(n-1):
    if s[i] > s[i+1]:
        p = s[:i]+s[i+1:]
        break
    if i == n-2:
        p=s[:-1]
print(p)


n = int(input())
s = input()

for i in range(n - 1):
    if ord(s[i]) > ord(s[i + 1]):
        print(s[:i] + s[i + 1:])
        return

print(s[:-1])


def ii():
    return int(input())
def mi():
    return list(map(int, input().split()))
def li():
    return list(mi())

n = ii()
s = input().strip()
i = 0
while i < n - 1:
    if ord(s[i]) > ord(s[i + 1]):
        break
    i += 1
ans = s[:i] + s[i + 1:]
print(ans)


n = int(input())
s = input()
p = -1
for i in range(n - 1):
    if ord(s[i]) > ord(s[i + 1]):
        p = i
        break
if p == -1:
    s = s[:-1]
else:
    s = s[:p] + s[p + 1:]
print(s)


import math
import bisect
import itertools
import sys
mod=10**9 +7
'''fact=[1]*1001
ifact=[1]*1001
for i in range(1,1001):
    fact[i]=((fact[i-1])*i)%mod
    ifact[i]=((ifact[i-1])*pow(i,mod-2,mod))%mod
def ncr(n,r):
    return (((fact[n]*ifact[n-r])%mod)*ifact[r])%mod
def npr(n,r):
    return (((fact[n]*ifact[n-r])%mod))
    '''


def mindiff(a):
    b=a[:]
    b.sort()
    m=10000000000
    for i in range(len(b)-1):
        if b[i+1]-b[i]<m:
            m=b[i+1]-b[i]
    return m
    
def lcm(a,b):
    return a*b//math.gcd(a,b)

    
def merge(a,b):
    i=0;j=0
    c=0
    ans=[]
    while i<len(a) and j<len(b):
        if a[i]<b[j]:
            ans.append(a[i])
            i+=1
        else:
            ans.append(b[j])
            c+=len(a)-i
            j+=1
    ans+=a[i:]
    ans+=b[j:]
    return ans,c
def mergesort(a):
    if len(a)==1:
        return a,0
    mid=len(a)//2   
    left,left_inversion=mergesort(a[:mid])
    right,right_inversion=mergesort(a[mid:])
    m,c=merge(left,right)
    c+=(left_inversion+right_inversion)
    return m,c
    
def is_prime(num):
    if num == 2: return True
    if num == 3: return True
    if num%2 == 0: return False
    if num%3 == 0: return False
    t = 5
    a = 2
    while t <= int(math.sqrt(num)):
        if num%t == 0: return False
        t += a
        a = 6 - a
    return True
    
  
def ceil(a,b):
    if a%b==0:
        return a//b
    else:
        return (a//b + 1)

def binsearch(arr,b,low,high):
    if low==high:
        return low
    if arr[math.ceil((low+high)/2)]<b:
        return binsearch(arr,b,low,math.ceil((low+high)/2) -1 )
    else:
        return binsearch(arr,b,math.ceil((low+high)/2),high)
def ncr1(n,r):
    s=1
    for i in range(min(n-r,r)):
        s*=(n-i)
        s%=mod
        s*=pow(i+1,mod-2,mod)
        s%=mod
    return s
    
def calc(n,m,r):
    s=0
    for i in range(0,r+1,2):
        s+=ncr1(n,i)*ncr1(m,i)
        s%=mod
    return s    
        
        

#/////////////////////////////////////////////////////////////////////////////////////////////////
n=int(input())
a=list(input())
for i in range(len(a)-1):
    if a[i]>a[i+1]:
        del a[i]
        print((''.join((a))));return
print((''.join((a[:n-1]))));return
    
        



n=int(input())
s=input()
for i in range(n-1):
    if s[i]>s[i+1]:
        print(s[:i]+s[i+1:])
        return
print(s[:n-1])

n = int(input())
s = [i for i in input()]
for i in range(n-1):
    if s[i] > s[i+1]:
        s.pop(i)
        break
if len(s) == n:
    s.pop()
print("".join(s))

n = int(input())
a=input()
for i in range(n - 1):
    if (ord(a[i])>ord(a[i+1])):
        print(a[:i]+a[i+1:])
        return
print(a[:n-1])

#      
import collections, atexit, math, sys, bisect 

sys.setrecursionlimit(1000000)
def getIntList():
    return list(map(int, input().split()))    

try :
    #raise ModuleNotFoundError
    import numpy
    def dprint(*args, **kwargs):
        #print(*args, **kwargs, file=sys.stderr)
        # in python 3.4 **kwargs is invalid???
        print(*args,  file=sys.stderr)
    dprint('debug mode')
except Exception:
    def dprint(*args, **kwargs):
        pass



inId = 0
outId = 0
if inId>0:
    dprint('use input', inId)
    sys.stdin = open('input'+ str(inId) + '.txt', 'r') #标准输出重定向至文件
if outId>0:
    dprint('use output', outId)
    sys.stdout = open('stdout'+ str(outId) + '.txt', 'w') #标准输出重定向至文件
    atexit.register(lambda :sys.stdout.close())     #idle 中不会执行 atexit
    
N, = getIntList()
#print(N)
s = input()

for i in range(1,N):
    if s[i-1] > s[i]:
        print(s[:i-1] + s[i:])
        return 
print(s[:-1])







#!/usr/bin/env python3
from typing import Dict, List, Tuple


def input_lst() -> List[int]:
    return [int(x) for x in input().split()]

def print_out(res: List[int]):
    print(' '.join([str(x) for x in res]))




def main():

    n,  = (int(x) for x in input().split())
    #a = input_lst()
    s = input()
    for i in range(len(s) - 1):
        if s[i] > s[i+1]:
            print(s[:i] + s[i+1:])
            return
    print(s[:-1])


def __starting_point():
    main()

__starting_point()

'''
option 1 : do nothing ( not feasible )
option 2 : take out the head
'''

input()
s = list(input())
removed = False
for i in range(len(s)-1):
    if s[i] > s[i+1]:
        del s[i]
        removed = True
        break

if not removed:
    del s[-1]
    
print(''.join(s))


import sys

input = sys.stdin.readline

n = int(input())

s = input().strip()

found = False
for i in range(len(s) - 1):
    if s[i] > s[i + 1]:
        s = s[0:i] + s[i+1:]
        found = True
        break

if found:
    print(s)
else:
    print(s[:-1])

n = int(input())

s = input()

found = n - 1

for i in range(n - 1):
  if(s[i] > s[i + 1]):
    found = i
    break

s = s[:found] + s[found + 1:]

print(s)

n = int(input())
s = [*input()]
for i in range(n):  
    if i == n - 1 or s[i] > s[i + 1]:
        del s[i]
        break
print(''.join(s))

#Author: Tanya Cheremkhina
n = int(input())
s = list(input())
for i in range(len(s) - 1):
    if s[i] > s[i + 1]:
        s[i] = ''
        break
else:
    s[-1] = ''
print(''.join(s))

def main():
    n = int(input())
    s = input()
    for i in range(1, n):
        if ord(s[i - 1]) > ord(s[i]):
            return s[:(i - 1)] + s[i:]
    return s[:-1]
print(main())


n=int(input())
s=str(input())
flag=0
k=''
for i in range(1,n):
    if(s[i-1]>s[i]):
        k=s[:i-1]+s[i:]
        flag=1
        break
if(flag==0):
    k=s[:-1]
print(k)

n=int(input())
s=input()
l=[]
for i in range(1,n):
    if(s[i]<s[i-1]):
        x=s[:i-1]+s[i:]
        print(x)
        break
    if(i==n-1):
        print(s[:n-1])
        break