#include<bits/stdc++.h>
using namespace std;
const int MAX_N = 15;
const int MAX_SUM = 30;
char a[MAX_N], b[MAX_N];
int dp[MAX_N][2 * MAX_SUM + 1];
int main() {
scanf("%s%s", a + 1, b + 1);
int n = strlen(a + 1);
int sum = 0;
for (int i = 1; i <= n; ++i) {
if (a[i] == '+') sum++;
else sum--;
}
dp[n + 1][sum + MAX_SUM] = 1;
for (int i = n; i >= 1; --i) {
for (int x = -MAX_SUM; x <= MAX_SUM; ++x) {
if (b[i] == '?') {
dp[i][x + MAX_SUM] = dp[i + 1][x - 1 + MAX_SUM] + dp[i + 1][x + 1 + MAX_SUM];
} else if (b[i] == '-') {
dp[i][x + MAX_SUM] = dp[i + 1][x - 1 + MAX_SUM];
} else {
dp[i][x + MAX_SUM] = dp[i + 1][x + 1 + MAX_SUM];
}
}
}
int ans1 = dp[1][sum + MAX_SUM];
for (int x = -MAX_SUM; x <= MAX_SUM; ++x) {
ans1 += dp[1][x + MAX_SUM];
}
int ans = dp[1][sum + MAX_SUM];
printf("%.12lf", ans / (ans1 * 1.0));
return 0;
}