'''
Don't Copy This Code, Try To Solve It By Yourself
'''
def Solve():
ss, rs = [], []
for t in range(int(input())):
ss.append(input())
rs.append(input())
for s, r in zip(ss, rs):
if "a" in s:
if r=="a":
print(1)
elif "a" in r:
print(-1)
else:
print(2**len(s))
else:
print(0)
if __name__ == "__main__":
Solve()
#include<bits/stdc++.h>
#define T int t; cin>>t; while(t--)
#define ll long long int
#define endl "\n"
#define eb emplace_back
#define ff first
#define ss second
#define M 1000000007
#define yess {cout<<"YES"<<endl;return;}
#define nos {cout<<"NO"<<endl;return;}
#define print(n) {cout<<n<<endl;return;}
#define input ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(0);
using namespace std;
void sol(){
cout<<fixed<<setprecision(25);
string s,t;cin>>s>>t;
if(t=="a")print(1)
for(int i=0;i<t.size();i++){
if(t[i]=='a')print(-1)
}
ll ans=(pow(2,s.size()));
print(ans)
/////////////////
}
int main(){
input
T sol();
}
901A - Hashing Trees | 1283A - Minutes Before the New Year |
1654D - Potion Brewing Class | 1107B - Digital root |
25A - IQ test | 785A - Anton and Polyhedrons |
1542B - Plus and Multiply | 306A - Candies |
1651C - Fault-tolerant Network | 870A - Search for Pretty Integers |
1174A - Ehab Fails to Be Thanos | 1169A - Circle Metro |
780C - Andryusha and Colored Balloons | 1153A - Serval and Bus |
1487C - Minimum Ties | 1136A - Nastya Is Reading a Book |
1353B - Two Arrays And Swaps | 1490E - Accidental Victory |
1335A - Candies and Two Sisters | 96B - Lucky Numbers (easy) |
1151B - Dima and a Bad XOR | 1435B - A New Technique |
1633A - Div 7 | 268A - Games |
1062B - Math | 1294C - Product of Three Numbers |
749A - Bachgold Problem | 1486B - Eastern Exhibition |
1363A - Odd Selection | 131B - Opposites Attract |