import string

def freqCount(s):
    fc = {}
    for c in s:
        if c in string.uppercase:
            if c in fc:
                fc[c] += 1
            else:
                fc[c] = 1
    return fc

def caesarEncrypt(s, k):
    s2 = ""
    for c in s:
        s2 += string.uppercase[(string.uppercase.find(c) + k) % 26]
    return s2

def affineDecrypt(s, k1, k2):
    s2 = ""
    for c in s:
        s2 += string.uppercase[((string.uppercase.find(c) - k2) * k1) % 26]
    return s2

def vigenereEncrypt(s, k):
    s2 = ""
    index = 0
    for c in s:
        s2 += string.uppercase[(string.uppercase.find(c) + \
                                string.uppercase.find(k[index])) % 26]
        index = (index + 1) % len(k)
    return s2

