//
// Created by Dan on 2025/10/14.
//
#include <bits/stdc++.h>

//#pragma GCC optimize(2)
using namespace std;

#define ull unsigned long long
#define PII pair<long long ,long long >
#define PIII pair<int, pair<int,int>>
#define pll pair<long long,long long>
#define f1n(x, n) for (int x = 1; x <= n; ++x)
#define fff(x, s, n) for (int x = s; x <= n; ++x)
#define ffr(x, s, t) for (int x = s; x >= t; --x)
#define f0n(x, n) for (int x = 0; x < n; ++x)
#define fn0(x, n) for(int x = n-1; x>=0; x--)
#define fn1(x, n) for(int x = n; x>0; x--)
#define double long double
#define vi vector<int>
#define LL long long
#define ll long long

#define vl vector<int>
#define vn vector<node>
#define vd vector<double>
#define vvl vector<vector<int>>
#define vvd vector<vector<double>>
#define vvvl vector<vector<vector<int>>>
#define vv(type) vector<vector<type>>
#define vp vector<pair<ll,ll>>
#define vpt vector<pt>
#define nvvl(n, m) vector<vector<int>>(n,vector<int>(m,0))
#define nvvd(n, m) vector<vector<double>>(n,vector<double>(m,0))
#define nvvdv(n, m, v) vector<vector<double>>(n,vector<double>(m,v))
#define nvvvl(n, m, t) vector<vector<vector<int>>>(n,vector<vector<int>>(m,vector<int>(t)))
#define nvvlt(n, m, t) vector<vector<t>>(n,vector<t>(m,0))
#define nvvlv(n, m, v) vector<vector<int>>(n,vector<int>(m,v))
#define int long long

static int DX[8] = {-1, -1, -1, 0, 0, 1, 1, 1};
static int DY[8] = {-1, 0, 1, -1, 1, -1, 0, 1};

const ll inf = 1e18;
int mod = 998244353;

using namespace std;


void solve() {
    int n, q;
    cin >> n >> q;
    vl a(n + 1);
    f1n(i, n)cin >> a[i];
    while (q--) {
        int op;
        cin >> op;
        if (op == 1) {
            int l, r, x;
            cin >> l >> r >> x;
            fff(i, l, r)a[i] += x;
        } else {
            int l, r, x;
            int ans = 0;
            cin >> l >> r >> x;
            fff(i, l, r) {
                if (a[i] < x)
                    ans++;
            }
            cout << ans << endl;
        }
    }
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    //init();

    int case_number = 1;
    //cin >> case_number;
    while (case_number--) {
        solve();
    }
}

很水的题,n方暴力用时只有1.5秒