#include #include using namespace std; using namespace atcoder; using ll = long long; using ull = unsigned long long; using ld = long double; using pii = pair; using pdd = pair; using pll = pair; using pli = pair; using pil = pair; template using Graph = vector>; const int MOD = 1e9 + 7; const ld PI = acos(-1); int main() { cin.tie(0); ios::sync_with_stdio(false); int N, a, b, c; cin >> N >> a >> b >> c; vector len(N); for (int i = 0; i < N; ++i) { string S; cin >> S; len[i] = S.size(); } auto func = [&](int k) -> vector { vector res(N); int r = 0, nlen = 0; for (int l = 0; l < N; ++l) { while (r < N && nlen < k) { nlen += len[r]; r++; } if (nlen == k) { res[l] = true; } nlen -= len[l]; } return res; }; auto aa = func(a); auto bb = func(a + b); auto cc = func(a + b + c); int ans = 0; for (int i = 0; i < N; ++i) { ans += aa[i] & bb[i] & cc[i]; } cout << ans << endl; return 0; }