#include <bits/stdc++.h>
using namespace std;
long long hs[1000010], aoi[1000010] = {1};
inline long long sana(long long l, long long r) {
  return (hs[r] - hs[l - 1] * aoi[r - l + 1] % 100000007 + 100000007) %
         100000007;
}
inline bool check(long long a, long long b, string &s) {
  long long x, y, i;
  x = y = -1;
  i = 1;
  for (char c : s) {
    if (c == '0') {
      if (x == -1)
        x = sana(i, i + a - 1);
      else if (sana(i, i + a - 1) != x)
        return 0;
      i += a;
    } else {
      if (y == -1)
        y = sana(i, i + b - 1);
      else if (sana(i, i + b - 1) != y)
        return 0;
      i += b;
    }
  }
  return !(x == y);
}
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  long long a, b, i, ans;
  a = b = ans = 0;
  string s, t;
  cin >> s;
  cin >> t;
  for (char c : s) {
    if (c == '0')
      a++;
    else
      b++;
  }
  for (i = 1; i <= t.size(); i++) {
    hs[i] = (hs[i - 1] * 29 + t[i - 1] - 'a' + 1) % 100000007;
    aoi[i] = aoi[i - 1] * 29 % 100000007;
  }
  for (i = 1; a * i < t.size(); i++) {
    if ((t.size() - a * i) % b == 0) {
      if (check(i, (t.size() - a * i) / b, s)) {
        ans++;
      }
    }
  }
  cout << ans << '\n';
  return 0;
}
