433 3
FZDDHMJGBZCHFUXBBPIEBBEFDWOMXXEPOMDGSMPIUZOMRZQNSJAVNATGIWPDFISKFQXJNVFXPHOZDAEZFDAHDXXQKZMGNSGKQNWGNGJGJZVVITKNFLVCPMZSDMCHBTVAWYVZLIXXIADXNYILEYNIQHKMOGMVOCWGHCWIYMPEPADSJAAKEGTUSEDWAHMNYJDIHBKHVUHLYGNGZDBULRXLSAJHPCMNWCEAAPYMHDTYWPADOTJTXTXUKLCHWKUSZRHEKQEFPVJEJJHRWCKYOIWALRTIBUMNOCRXLSIKQCJVQXEPGOHRUDJDKMUUUDORURWXJNVRVMNOUNRFKSVMTMZGOIJLXEPAMVGESOADYIGZXRBJDIWKNOWTCSROAQTBECHTOZVSQUOOJRZIBAUHMKAXDCIMDZJFMABGRNTGPUJAUNFPFWCJG
 6 2
ABCABC
 41 19
TMEYYIIELFDCMBDKWWKYNRNDUPRONYROXQCLVQALP
 5 2
ABACA
 377 3
EADADBBBBDEAABBAEBABACDBDBBCACAADBEAEACDEAABACADEEDEACACDADABBBBDDEECBDABACACBAECBADAEBDEEBDBCDAEADBCDDACACDCCEEDBCCBBCEDBECBABCDDBBDEADEDAEACDECECBEBACBCCDCDBDAECDECADBCBEDBBDAAEBCAAECCDCCDBDDEBADEEBDCAEABBDEDBBDDEAECCBDDCDEACDAECCBDDABABEAEDCDEDBAECBDEACEBCECEACDCBABCBAAEAADACADBBBBABEADBCADEBCBECCABBDDDEEBCDEBADEBDAAABBEABADEDEAEABCEEBEEDEAEBEABCEDDBACBCCADEBAAAAAEABABBCE
 3 26
AAB
 27 1
ABCDEFGHIJKLMNOPQRSTUVWXYZA
 73 2
DEBECECBBADAADEAABEAEEEAEBEAEBCDDBABBAEBACCBEEBBAEADEECACEDEEDABACDCDBBBD
 7 2
ABCDBCD
 5 1
AZAZA
 44 15
HGJIFCGGCDGIJDHBIBGAEABCIABIGBDEADBBBAGDFDHA
 5 2
ABCAB
 8 3
ABCBCDCA
 26 1
ABCDEFGHIJKLMNOPQRSTUVWXYZ

YES
 YES
 NO
 NO
 YES
 NO
 YES
 YES
 YES
 YES
 NO
 YES
 NO
 NO

def PS():
    uOutput = 0;
    uInput = int(input());
    if(uInput % 2 == 0):
        bQuart = 0;
        if(uInput % 4 == 0):
            bQuart = 1;
        uHalf = uInput // 2;
        uOutput = (uHalf // 2) - bQuart;

    return uOutput;


def GetDoorIndex(c):
    return (ord(c) - ord("A"));

uOpen_Num = 0;#indicate how many dor is open
uList_DoorOpen = [False]*26;#mark if the door is opened or not

def OpenDoor(c):
    global uOpen_Num;
    global uList_DoorOpen;

    index = GetDoorIndex(c);
    uList_DoorOpen[index] = True;
    uOpen_Num += 1;

def CloseDoor(c):
    global uOpen_Num;
    global uList_DoorOpen;

    index = GetDoorIndex(c);
    uList_DoorOpen[index] = False;
    uOpen_Num -= 1;

def FE():
    global uOpen_Num;
    global uList_DoorOpen;

    uList_Guest = [0] * 26;#list of each door's remaining guest number
    uOutput = "NO"
    sInput = input();
    sGuest = input();

    sInput_List = sInput.split(" ");
    uGuest_Num = int(sInput_List[0]);
    uGuard_Num = int(sInput_List[1]);
    
    #uGuard_Usage = 0;
    
    #uGuest_Counter = 0;

    #complete list guest, not used not, for optimize
    for c in sGuest:
        index = GetDoorIndex(c);
        uList_Guest[index] += 1;

    uGuest_Counter = 0;

    uDoorIndex = 0;
    for c in sGuest:
        uDoorIndex = GetDoorIndex(c);
        #Decrease the Remain Guest Counter
        uList_Guest[uDoorIndex] -= 1;
        #open door
        if(uList_DoorOpen[uDoorIndex]):#if(c in sGuest[:(uGuest_Counter)]):#door already opened
            if(uList_Guest[uDoorIndex] <= 0):#if((c in sGuest[(uGuest_Counter + 1):]) == False):#no more that door, close door
                CloseDoor(c);#uOpen_Num -= 1;
            else:
                pass;
        else:#new door open
            if(uOpen_Num >= uGuard_Num):#reach limit
                uOutput = "YES"
                break;
            if(uList_Guest[uDoorIndex] > 0):#if(c in sGuest[(uGuest_Counter + 1):]):#need to open door
                OpenDoor(c);#uOpen_Num += 1;
            else:#only pass once
                pass;
                

        uGuest_Counter += 1;

    print(uOutput);
        



        



if __name__ == "__main__":
    #print(PS());
    FE();

    #print("Hello")