#include<bits/stdc++.h>
using namespace std;
int n,m; vector<int>edge[15];
double dp[(1<<14)],p;
int main(){
	cin >> n >> m >> p; p/=100.;
	for(int i=0;i<m;i++){
		int a,b; cin >> a >> b; a--; b--;
		edge[a].push_back(b);
		edge[b].push_back(a);
	}
	for(int i=0;i<n;i++) dp[(1<<i)] = 1.0;
	for(int i=1;i<(1<<n);i+=2){
		if(__builtin_popcount(i) <= 1) continue;
		for(int j=i;j>=0;j--){
			j&=i;
			if(j==i||j%2==0) continue;
			double add = 1.0;
			for(int x=0;x<n;x++){
				if(!((j>>x)&1)) continue;
				for(int y=0;y<edge[x].size();y++){
					if(!((i>>edge[x][y])&1)) continue;
					if(((j>>edge[x][y])&1)) continue;
					add *= p;
				}
			}
			dp[i] += dp[j]*add;
		}
		dp[i] = 1.0-dp[i];
	}
	printf("%.12f\n",dp[(1<<n)-1]);
}