#include <bits/stdc++.h>
using namespace std;

struct prt{
public:
    int l, r;
};

bool cmp(prt x, prt y){
    return x.l+x.r<y.l+y.r;
}

int main(){
    int n, m, k, i, j, id=0, ans=0;
    cin>>n>>m>>k;
    prt p[m];
    int pref[n-k+1][m+1], suff[n-k+1][m+1];
    for(i=0; i<m; i++) cin>>p[i].l>>p[i].r;
    sort(p, p+m, cmp);
    for(i=0; i<=n-k; i++){
        pref[i][0]=0;
        suff[i][m]=0;
        for(j=0; j<m; j++){
            pref[i][j+1]=pref[i][j]+max(0, min(p[j].r, i+k)-max(p[j].l, i+1)+1);
            suff[i][m-j-1]=suff[i][m-j]+max(0, min(p[m-j-1].r, i+k)-max(p[m-j-1].l, i+1)+1);
        }
    }
    for(i=0; i<=2*(n-k); i++){
        while(id<m && p[id].l+p[id].r<i+k+1) id++;
        for(j=max(0, i-n+k); j<=i/2; j++) ans=max(ans, pref[j][id]+suff[i-j][id]);
    }
    cout<<ans;
}
