#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <map>
#include <functional>
#include <cassert>
#include <cctype>
#include <string>
#include <sstream>
#include <bitset>
#include <list>
#include <set>
#include <stack>
using namespace std;
typedef long long ll;
#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((ll)(x).size())
#define LT(x) (x<<1)
#define RT(x) (x<<1|1)
#define MID(x, y) (x + y) >> 1
typedef vector<ll> VI;
typedef pair<int, int> PII;
typedef pair<ll, ll> PLL;
const ll mod = 1000000007;
const ll LINF = 1e16 + 10;
const int MAXN = 2e5 + 24;
const int INF = 0x3f3f3f3f;
const int MOD = 998244353;

char vec[MAXN];

int main() {
#ifdef kirito
	freopen("in.txt", "r", stdin);
	freopen("out.txt", "w", stdout);
#endif // kirito
	int n, s;
	while (~scanf("%d %d", &n, &s)) {
		scanf("%s", &vec);
		for (int i = 0; i < n; i++) {
			if (vec[i] == 'x') {
				s--;
				s = max(s, 0);
			}
			else {
				s++;
			}
		}
		printf("%d\n", s);
	}
	return 0;
}
//F - Valid payments
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <map>

#define ll long long
#define cl(x, y) memset((x), (y), sizeof(x))
#define rep(i, a, b) for(ll i = a; i <= b; i++)
#define per(i, a, b) for(ll i = a; i >= b; i--)
#define de(x) cerr << #x << " = " << x << " "
#define inc_mod(x, y) x = ((x - y) % mod + mod) % mod
#define add_mod(x, y) x = (x + y) % mod
#define add(x, y) x += y
#define inc(x, y) x -= y
#define Lowbit(x) (x & (-x))
#define inf 0x3f3f3f3f3f3f3f3f
#define mod 998244353
#define rson (x << 1 | 1)
#define lson (x << 1)
using namespace std;
const ll maxn = 100;

ll total, limit, ans;
ll num[maxn];
map<ll, ll> cube;

inline void File() {
    freopen(".in", "r", stdin);
    freopen(".out", "w", stdout);
}

signed main() {
    // file();
    ios::sync_with_stdio(false);
    cin >> total >> limit;
    rep(i, 1, total) { cin >> num[i]; }
    cube[limit] = 1;
    rep(i, 1, total-1) {
        ll x = num[i+1] / num[i];
        map<ll, ll> temp;
        map<ll, ll>::iterator iter;
        for(iter = cube.begin(); iter != cube.end(); iter++) {
            if((*iter).first % x) { temp[(*iter).first / x + 1] += (*iter).second; }
            temp[(*iter).first / x] += (*iter).second;
        }
        swap(cube, temp);
    }
    map<ll, ll>::iterator iter;
    for(iter = cube.begin(); iter != cube.end(); iter++) 
        ans += (*iter).second;
    cout << ans << endl;
    // fclose(stdin);
    // fclose(stdout);
    // system("pause");
    return 0;
}