#include<bits/stdc++.h>
using namespace std;
int M,S,T,t;
int firstget=1e8+7;
int cnt,leave;
bool endtime;
int dp[300004][17];
int main()
{
scanf("%d%d%d",&M,&S,&T);
if(M>=10)
cnt=M/10;
leave=M%10;
T-=cnt;
dp[0][leave]=60*cnt;
if(dp[0][leave]>=S)
{
printf("Yes\n");
int tp=S/60;
printf("%d\n",tp+1);
return 0;
}
for(int i=0;i<=T-1&&!endtime;i++)
{
for(int j=0;j<=15;j++)
{
dp[i+1][j]=max(dp[i+1][j],dp[i][j]+17);
if(dp[i+1][j]>=S)
{
firstget=i+1;
endtime=1;
}
if(j>=10)
{
dp[i+1][j-10]=max(dp[i+1][j-10],dp[i][j]+60);
if(dp[i+1][j-10]>=S)
{
firstget=i+1;
endtime=1;
}
}
if(j<=9)
dp[i+1][j+4]=max(dp[i+1][j+4],dp[i][j]);
}
}
bool can=0;
int maxium=-1;
int pos;
if(firstget==1e8+7)
pos=T;
else pos=firstget;
for(int j=0;j<=15;j++)
{
if(dp[pos][j]>=S)
{
can=1;
break;
}
maxium=max(maxium,dp[pos][j]);
}
if(can)
{
printf("Yes\n");
printf("%d\n",pos+cnt);
}
else
{
printf("No\n");
printf("%d\n",maxium);
}
return 0;
}