#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>

const int maxm=200;

int n,m,u,v;
double p;
int begin[14],end[maxm],next[maxm],k;
double dp[1<<14],x;
int maxn;
bool vis[1<<14];
bool dis[14][14];

double dfs(int s)
{
    if(vis[s])return dp[s];
    vis[s]=1;
    dp[s]=0;
    for(int i=(s-1)&s;i;i=(i-1)&s)
    {
        if((i&(-i))!=(s&(-s)))continue;
        double x=1;
        for(u=0;u<n;u++)
            if(i&(1<<u))
            {
                for(v=0;v<n;v++)
                {
                    if(!dis[u][v])continue;
                    if((1<<v)&(s^i))
                    {
                        x=x*p;
                    }
                }
            }
        dp[s]+=dfs(i)*x;
        //printf("%d,%d:%.10f %.10f\n",s,i,x,dp[s]);
    }
    //printf("%d:%.10f\n",s,dp[s]);
    dp[s]=1-dp[s];
    return dp[s];
}

void insert(const int &u,const int &v)
{
    end[k]=v;
    next[k]=begin[u];
    begin[u]=k++;
}

int main()
{
    while(scanf("%d%d%lf",&n,&m,&p)==3)
    {
        memset(begin,-1,sizeof(begin));
        p=p/100.0;
        maxn=(1<<n);
        for(int i=0;i<maxn;i++)
            dp[i]=0.0;
        k=0;
        memset(dis,0,sizeof(dis));
        for(int i=0;i<m;i++)
        {
            scanf("%d%d",&u,&v);
            u--;
            v--;
            dis[u][v]=dis[v][u]=1;
            insert(u,v);
            insert(v,u);
        }
        memset(vis,0,sizeof(vis));
        for(int i=0;i<n;i++)
            dp[1<<i]=1.0,vis[1<<i]=1;
        printf("%.10f\n",dfs(maxn-1));
    }
    return 0;
}