import numpy as np
from collections import Counter, deque

def bootstrap(m, nsample, resample_len, nresamples, f):
    whole_sample = np.zeros(nsample)
    whole_sample[m:] = 1

    results = deque()
    for _ in range(nresamples):
        sample = np.random.choice(whole_sample, resample_len)
        results.append(f(sample))

    results = np.array(results).astype(np.double)
    return np.std(results)