import
java.util.*;
public
class
Main
{
static
int
[] ans = {
0
};
static
void
pr(String str,
int
x,
int
y,
boolean
flag,
char
p,
char
r) {
Stack<Character> stack =
new
Stack<Character>();
for
(
int
i =
0
; i < str.length(); i++) {
if
(str.charAt(i) == r) {
if
(stack.size() >
0
&& stack.peek() == p) {
ans[
0
] += x;
stack.pop();
}
else
{
stack.push(str.charAt(i));
}
}
else
{
stack.push(str.charAt(i));
}
ans[
0
] +=
1
;
if
(flag) {
String s =
""
;
Stack<Character> s1 = stack;
while
(s1.size() >
0
) {
s = s + s1.peek();
s1.pop();
}
rp(s, x, y,
false
, p, r);
}
}
}
static
void
rp(String str,
int
x,
int
y,
boolean
flag,
char
p,
char
r)
{
Stack<Character> stack =
new
Stack<Character>();
for
(
int
i =
0
; i < str.length(); i++)
{
if
(str.charAt(i) == p) {
if
(stack.size() >
0
&& stack.peek() == r)
{
ans[
0
] += y;
stack.pop();
}
else
{
stack.push(str.charAt(i));
}
}
else
{
stack.push(str.charAt(i));
}
ans[
0
]+=
1
;
if
(flag)
{
String s =
""
;
Stack<Character> s1 = stack;
while
(s1.size() >
0
) {
s = s + s1.peek();
s1.pop();
}
pr(s, x, y,
false
, p, r);
}
}
}
static
int
solve(String str,
int
x,
int
y,
char
p,
char
r) {
if
(x > y)
pr(str, x, y,
true
, p, r);
else
rp(str, x, y,
true
, p, r);
return
ans[
0
]-
1
;
}
public
static
void
main(String[] args)
{
String S =
"12333444"
;
int
x =
5
;
int
y =
4
;
String P =
"34"
;
System.out.print(solve(S, x, y, P.charAt(
0
), P.charAt(
1
)));
}
}