#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <cmath>
#include <map>
 
using namespace std; 
 
int counter(int s, int t, string weekday, string time, int m, int begin)
{
    map<string,int> week;
    map<string,int>::iterator ite;
    week["Sun"] = 0;
    week["Mon"] = 1440;
    week["Tue"] = 2880;
    week["Wed"] = 4320;
    week["Thu"] = 5760;
    week["Fri"] = 7200;
    week["Sat"] = 8640;
 
    int count = 0;
    int start = begin;
    int end;
 
    for(int i=start, j=0; j < m; i+=t,j++){
        i=i%10080; end=(i+s)%10080;
        if(weekday=="All"){
            if(time == "Day"){
                for(ite = week.begin(); ite != week.end(); ++ite){
                    if( (((week[ite->first]+(60*6)) <= i)&&((week[ite->first]+(60*18)) > i))&&
                            (((week[ite->first]+(60*6)) <= end)&&((week[ite->first]+(60*18)) > end)) ){count++;break;}
                }
            }
            else if(time == "Night"){
                for(ite = week.begin(); ite != week.end(); ++ite){
                    if(ite->first == "Sun"){
                        if( (((week[ite->first] <= i)&&((week[ite->first]+(60*6)) > i))||((week["Sat"]+(60*18) <= i)&&((week["Sat"]+(60*24)) > i)) )&&
                                (((week[ite->first] <= end)&&((week[ite->first]+(60*6)) > end))||((week["Sat"]+(60*18) <= end)&&((week["Sat"]+(60*24)) > end))) ){count++;break;}
                        else if( (((week[ite->first]+(60*18)) <= i)&&((week[ite->first]+(60*30)) > i))&&
                                        (((week[ite->first]+(60*18)) <= end)&&((week[ite->first]+(60*30)) > end)) ){count++;break;}
                    }
                    if(ite->first == "Sat"){
                        if( ((week[ite->first]-(60*6) <= i)&&((week[ite->first]+(60*6)) > i))&&
                                ((week[ite->first]-(60*6) <= end)&&((week[ite->first]+(60*6)) > end)) ){count++;break;}
                        else if( ((((week[ite->first]+(60*18)) <= i)&&((week[ite->first]+(60*24)) > i))||((week["Sun"] <= i)&&((week["Sun"]+(60*6)) > i)) )&&
                                        ((((week[ite->first]+(60*18)) <= end)&&((week[ite->first]+(60*24)) > end))||((week["Sun"] <= end)&&((week["Sun"]+(60*6)) > end))) ){count++;break;}
                    }
                    else{
                        if( ((week[ite->first]-(60*6) <= i)&&((week[ite->first]+(60*6)) > i))&&
                                ((week[ite->first]-(60*6) <= end)&&((week[ite->first]+(60*6)) > end)) ){count++;break;}
                        else if( (((week[ite->first]+(60*18)) <= i)&&((week[ite->first]+(60*30)) > i))&&
                                        (((week[ite->first]+(60*18)) <= end)&&((week[ite->first]+(60*30)) > end)) ){count++;break;}
                    }
                }
            }
            else{ count++;}
        }
        else{
            if(time == "Day"){
                if( (((week[weekday]+(60*6)) <= i)&&((week[weekday]+(60*18)) > i))&&
                        (((week[weekday]+(60*6)) <= end)&&((week[weekday]+(60*18)) > end)) ){count++;}
            }
            else if(time == "Night"){
                if( ((week[weekday] <= i)&&((week[weekday]+(60*6)) > i))&&
                        ((week[weekday] <= end)&&((week[weekday]+(60*6)) > end)) ){count++;}
                else if( (((week[weekday]+(60*18)) <= i)&&((week[weekday]+(60*24)) > i))&&
                                (((week[weekday]+(60*18)) <= end)&&((week[weekday]+(60*24)) > end)) ){count++;}
            }
            else{
                if( ((week[weekday] <= i)&&((week[weekday]+(60*24)) > i))&&
                        ((week[weekday] <= end)&&((week[weekday]+(60*24)) > end)) ){count++;}
            }
        }
    }
 
    return count;
}
 
int main()
{
    int s, n, t, p, m;
    string weekday, time;
 
    while(cin >> s >> n >> t >> weekday >> time >> p >> m ){
        if((s==0)&&(n==0)&&(t==0)&&(weekday=="None")&&(time=="None")&&(p==0)&&(m==0)){return 0;}
        int count;
        int max = 0;
 
        if((weekday == "All")&&(time == "All")){
            max = m;
        }
        else if(weekday == "All"){
            for(int i=0; i<1440; i++){
                count = counter(s, t, weekday, time, m, i);
                if(max<count){ max=count;}
            }       
        }
        else{
            for(int i=0; i<10080; i++){
                count = counter(s, t, weekday, time, m, i);
                if(max<count){ max=count;}
            }
        }
 
        printf("%1.10f\n", 1.0 - pow((double)(p-1)/p, n*max) );     
    }
     
}

Measured memory_bytes: 1288