### BUGGY CODE ###

## coding: UTF-8
N = int(input())
S = input()
s = []
#print(N)
#print(S)

#まず右（E）を向いている人を1、左（W）を向いている人を0に変換する
for i in range(len(S)):
    if(S[i] == 'E'):
        s.append(1)
    else:
        s.append(0)
#print(s)

#その地点までで左(W)を向いている人数を累積和するリストを作ります。要は右に振り向かせる人数リスト
E_count = []
#その地点から先で右(E)を向いている人数を累積和するリストを作ります。要は左に振り向かせる人数リスト
W_count = []
ans = []
for i in range(len(s)):
    E_count.append(  len(s[:i]) - sum(s[:i]))
    W_count.append(  sum(s[i+1:])  )
    ans.append( E_count[i] + W_count[i])
print(min(ans))
#print(E_count)
#print(W_count)

'''
#これでもTLEします
def count_tern_new(s, leader):
    counter = 0
    #leaderより小さい人は右に向かせる。 左を向いている人数　＝　人数-右を向いている人数
    counter += len(s[:leader]) - sum(s[:leader])
    #leaderより大きい人には左を向かせる。 右を向いている人数
    counter += sum(s[leader+1:])
    return counter

answer_list_new = []
for i in range(len(s)):
    answer_list_new.append(count_tern_new(s, i))
print(min(answer_list_new))
'''


'''
#これだとTLEします。
def count_tern(s, leader): #文字列とリーダーのインデックスを引数にとる
    counter = 0
    for i in range(leader):
        if(s[i] == 'W'):
            counter += 1            
            #print("tern to E, i = {}, counter = {}".format(i,counter))
    #print("leader:{}".format(leader))
    for j in range(leader+1, len(s)):
        if(s[j] == 'E'):
            counter += 1
            #print("tern to W, j = {}, counter = {}".format(j, counter))
    return counter

#answer = 1000
answer_list = []
for i in range(len(S)):
    answer_list.append(count_tern(S, i))

#for i in range(len(S)):
    #print(count_tern(S, i))
    #print()
    #if(count_tern(S, i) < answer):
        #answer = count_tern(S, i)

print(min(answer_list))
'''

### FIXED CODE ###

## coding: UTF-8
N = int(input())
S = input()
#s = []
#print(N)
#print(S)

#自分の手前までで左を向いている人の累積和リストをとりあえず作ってみる
sum_up_W = []
counter = 0
for i in range(N):
    sum_up_W.append(counter)
    if(S[i] == 'W'):
        counter += 1    
sum_up_W.append(counter) #最後にcounterを足さないと右端の人の影響が出ない。
#print(sum_up_W)
#右Eに振り向かせたいのはsum_up_W[i]
#リーダーより右で左を向いている人数はsum_up_W[N](全体で左を向いている人数)-sum_up_W[i+1](リーダーも含め、リーダーまでで左を向いている人数)
#左Wに振り向かせたいのは、リーダーより右で右を向いている人数： N-(i+1)（リーダーより右の全人数） - 上行の人数（リーダーより右で左を向いている人数）

ans = []
for i in range(N):
    ans.append(sum_up_W[i] + N - (i+1) - (sum_up_W[N] - sum_up_W[i+1])    )
print(min(ans))
'''
#これでもTLEします
#まず右（E）を向いている人を1、左（W）を向いている人を0に変換する
for i in range(len(S)):
    if(S[i] == 'E'):
        s.append(1)
    else:
        s.append(0)
#print(s)

#その地点までで左(W)を向いている人数を累積和するリストを作ります。要は右に振り向かせる人数リスト
E_count = []
#その地点から先で右(E)を向いている人数を累積和するリストを作ります。要は左に振り向かせる人数リスト
#W_count = []
#ans = []
for i in range(len(s)):
    E_count.append(  len(s[:i]) - sum(s[:i])  +   sum(s[i+1:]))
    #W_count.append(  sum(s[i+1:])  )
    #ans.append( E_count[i] + W_count[i])
#print(min(ans))
#print(E_count)
#print(W_count)
#for i in range(len(s)):
    #ans.append(E_count[i] + W_count[i])
print(min(E_count))
'''
'''
#これでもTLEします
def count_tern_new(s, leader):
    counter = 0
    #leaderより小さい人は右に向かせる。 左を向いている人数　＝　人数-右を向いている人数
    counter += len(s[:leader]) - sum(s[:leader])
    #leaderより大きい人には左を向かせる。 右を向いている人数
    counter += sum(s[leader+1:])
    return counter

answer_list_new = []
for i in range(len(s)):
    answer_list_new.append(count_tern_new(s, i))
print(min(answer_list_new))
'''


'''
#これだとTLEします。
def count_tern(s, leader): #文字列とリーダーのインデックスを引数にとる
    counter = 0
    for i in range(leader):
        if(s[i] == 'W'):
            counter += 1            
            #print("tern to E, i = {}, counter = {}".format(i,counter))
    #print("leader:{}".format(leader))
    for j in range(leader+1, len(s)):
        if(s[j] == 'E'):
            counter += 1
            #print("tern to W, j = {}, counter = {}".format(j, counter))
    return counter

#answer = 1000
answer_list = []
for i in range(len(S)):
    answer_list.append(count_tern(S, i))

#for i in range(len(S)):
    #print(count_tern(S, i))
    #print()
    #if(count_tern(S, i) < answer):
        #answer = count_tern(S, i)

print(min(answer_list))
'''