#!/usr/bin/env python3 n, m, k, x = map(int, input().split()) orgs = sorted(list(map(int, input().split()))) # Implementační trik: každého organizátora přidáme na pozici i + n, čímž se zbavíme cykličnosti. for i in range(x + 1): orgs.append(orgs[i] + n) ans = 0 # Samostatně ošetři případ, kdy x=0. if x == 0: for i in range(0, m): # Mezi každou dvojicí organizátorů, započti počet oken mezi nimi. add = orgs[i + 1] - orgs[i] - k if add >= 0: ans += add else: for i in range(1, m+1): # Započti počet oken, kdy prvním organizátorem je i-tý v seznamu. fr = max(orgs[i + x - 1] - k + 1, orgs[i - 1] + 1) to = min(orgs[i + x] - k + 1, orgs[i] + 1) if (to < fr): continue ans += to - fr print(ans)