n, m, q = gets.split.map(&:to_i)

prob = {}
(1..m).each do
    i, j = gets.split.map(&:to_i) 
    i, j = [i, j].sort
    prob[(i << 4) + j] = q / 100.0
end

def f(n, prob)
    return 1.0 if n == 1
    return 0.0 if disconnected?(n, prob)

    key = prob.keys[0]
    i, j = key >> 4, key & 15

    ans = 0

    new_prob = prob.dup
    new_prob.delete(key)
    ans += prob[key] * f(n, new_prob)

    new_prob = Hash.new(1.0)
    prob.each do |k, q|
        u, v = k >> 4, k & 15
        next if k == key
        u = j if k >> 4 == i
        v = j if k & 15 == i
        u, v = [u, v].sort
        new_prob[(u << 4) + v] *= prob[k]
    end

    ans += (1.0 - prob[key]) * f(n-1, new_prob)
end

def disconnected?(n, prob)
    vs = prob.keys.map {|key| [key >> 4, key & 15]}.flatten.uniq
    return true if vs.size != n
    cc = {}
    vs.each {|i| cc[i] = i}
    prob.keys.each do |key|
        i, j = key >> 4, key & 15
        cc1 = cc[i]
        cc2 = cc[j]
        cc.each do |k, c|
           cc[k] = cc2 if c == cc1
        end
    end

    cc.values.uniq.size > 1
end

printf("%.12f\n", f(n, prob))

