#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int n,e,t,m,graph[101][101],a[101];
bool visited[101];
int dijkstra()
{
int Min=30000,MinI;
for(int i=1;i<=n;i++)
{
if(a[i]<Min&&visited[i]==false)
{
Min=a[i];
MinI=i;
}
}
if(MinI==e)
{
return 0;
}
visited[MinI]=true;
for(int i=1;i<=n;i++)
{
if(graph[MinI][i]>-1)
{
a[i]=min(a[i],a[MinI]+graph[MinI][i]);
}
}
dijkstra();
return 0;
}
int main()
{
//freopen("input.txt","r",stdin);
cin >> n >> e >> t >> m;
for(int i=0;i<=n;i++)
{
for(int j=0;j<=n;j++)
{
graph[i][j]=-1;
}
}
int x,y,temp;
while(m--)
{
scanf("%d %d %d",&x,&y,&temp);
graph[x][y]=temp;
}
int ans=0;
for(int i=1;i<=n;i++)
{
for(x=1;x<=n;x++)
{
visited[x]=false;
a[x]=30000;
}
a[i]=0;
dijkstra();
if(a[e]<=t)
{
ans++;
}
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPG1hdGguaD4KIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBuLGUsdCxtLGdyYXBoWzEwMV1bMTAxXSxhWzEwMV07CiAKYm9vbCB2aXNpdGVkWzEwMV07CiAKaW50IGRpamtzdHJhKCkKewogICAgaW50IE1pbj0zMDAwMCxNaW5JOwogCiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBpZihhW2ldPE1pbiYmdmlzaXRlZFtpXT09ZmFsc2UpCiAgICAgICAgewogICAgICAgICAgICBNaW49YVtpXTsKIAogICAgICAgICAgICBNaW5JPWk7CiAgICAgICAgfQogICAgfQogCiAgICBpZihNaW5JPT1lKQogICAgewogICAgICAgIHJldHVybiAwOwogICAgfQogCiAgICB2aXNpdGVkW01pbkldPXRydWU7CiAKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGlmKGdyYXBoW01pbkldW2ldPi0xKQogICAgICAgIHsKICAgICAgICAgICAgYVtpXT1taW4oYVtpXSxhW01pbkldK2dyYXBoW01pbkldW2ldKTsKICAgICAgICB9CiAgICB9CiAKICAgIGRpamtzdHJhKCk7CiAKICAgIHJldHVybiAwOwp9CiAKaW50IG1haW4oKQp7CiAgICAvL2ZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTsKIAogICAgY2luID4+IG4gPj4gZSA+PiB0ID4+IG07CiAKICAgIGZvcihpbnQgaT0wO2k8PW47aSsrKQogICAgewogICAgICAgIGZvcihpbnQgaj0wO2o8PW47aisrKQogICAgICAgIHsKICAgICAgICAgICAgZ3JhcGhbaV1bal09LTE7CiAgICAgICAgfQogICAgfQogCiAgICBpbnQgeCx5LHRlbXA7CiAKICAgIHdoaWxlKG0tLSkKICAgIHsKICAgICAgICBzY2FuZigiJWQgJWQgJWQiLCZ4LCZ5LCZ0ZW1wKTsKIAogICAgICAgIGdyYXBoW3hdW3ldPXRlbXA7CiAgICB9CiAKICAgIGludCBhbnM9MDsKIAogICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgZm9yKHg9MTt4PD1uO3grKykKICAgICAgICB7CiAgICAgICAgICAgIHZpc2l0ZWRbeF09ZmFsc2U7CiAKICAgICAgICAgICAgYVt4XT0zMDAwMDsKICAgICAgICB9CiAKICAgICAgICBhW2ldPTA7CiAKICAgICAgICBkaWprc3RyYSgpOwogCiAgICAgICAgaWYoYVtlXTw9dCkKICAgICAgICB7CiAgICAgICAgICAgIGFucysrOwogICAgICAgIH0KICAgIH0KIAogICAgY291dCA8PCBhbnMgPDwgZW5kbDsKIAogICAgcmV0dXJuIDA7Cn0=