stk=input().split()
n=int(stk[0]);m=int(stk[1]);k=int(stk[2]);v=float(stk[3])
bmap=[]
for i in range(m): bmap.append(input())
x0,y0 = [int(x) for x in input().split()]
x0-=1
y0-=1
bombs=[]
for i in range(k):
stsss = input().split()
bombs.append((int(stsss[0])-1, int(stsss[1])-1))
vmin=10**10
import math,copy
d9dx = math.sqrt(2)
def dj(x,y,marks,d,kx,ky):
marks[y][x]=True
if kx==x and ky==y:
global vmin
vmin=min(vmin, d)
for dx,dy in [(1,0),(0,1),(-1,0),(0,-1)]:
if x+dx>=0 and y+dy>=0 and x+dx<n and y+dy<m and not marks[y+dy][x+dx] and bmap[y+dy][x+dx]==".":
dj(x+dx, y+dy, copy.copy(marks), d+1, kx,ky)
global d9dx
for dx,dy in [(1,1),(-1,1),(1,-1),(-1,-1)]:
if x+dx>=0 and y+dy>=0 and x+dx<n and y+dy<m and not marks[y+dy][x+dx] and bmap[y+dy][x+dx]==".":
dj(x+dx, y+dy, copy.copy(marks), d+d9dx, kx,ky)
sm=0
for i in range(k):
dj(x0,y0,[[False for j in range(n)] for x in range(m)],0,bombs[i][0], bombs[i][1])
if vmin!=0:
x0,y0 = bombs[i]
sm+=vmin
vmin=10**10
sm/=v
print("%.2f" % sm)
c3RrPWlucHV0KCkuc3BsaXQoKQpuPWludChzdGtbMF0pO209aW50KHN0a1sxXSk7az1pbnQoc3RrWzJdKTt2PWZsb2F0KHN0a1szXSkKYm1hcD1bXQpmb3IgaSBpbiByYW5nZShtKToJYm1hcC5hcHBlbmQoaW5wdXQoKSkKeDAseTAgPSBbaW50KHgpIGZvciB4IGluIGlucHV0KCkuc3BsaXQoKV0KeDAtPTEKeTAtPTEKYm9tYnM9W10KZm9yIGkgaW4gcmFuZ2Uoayk6CglzdHNzcyA9IGlucHV0KCkuc3BsaXQoKQoJYm9tYnMuYXBwZW5kKChpbnQoc3Rzc3NbMF0pLTEsIGludChzdHNzc1sxXSktMSkpCnZtaW49MTAqKjEwCmltcG9ydCBtYXRoLGNvcHkKZDlkeCA9IG1hdGguc3FydCgyKQoKZGVmIGRqKHgseSxtYXJrcyxkLGt4LGt5KToKCW1hcmtzW3ldW3hdPVRydWUKCWlmIGt4PT14IGFuZCBreT09eToKCQlnbG9iYWwgdm1pbgoJCXZtaW49bWluKHZtaW4sIGQpCglmb3IgZHgsZHkgaW4gWygxLDApLCgwLDEpLCgtMSwwKSwoMCwtMSldOgoJCWlmIHgrZHg+PTAgYW5kIHkrZHk+PTAgYW5kIHgrZHg8biBhbmQgeStkeTxtIGFuZCBub3QgbWFya3NbeStkeV1beCtkeF0gYW5kIGJtYXBbeStkeV1beCtkeF09PSIuIjoKCQkJZGooeCtkeCwgeStkeSwgY29weS5jb3B5KG1hcmtzKSwgZCsxLCBreCxreSkKCWdsb2JhbCBkOWR4Cglmb3IgZHgsZHkgaW4gWygxLDEpLCgtMSwxKSwoMSwtMSksKC0xLC0xKV06CgkJaWYgeCtkeD49MCBhbmQgeStkeT49MCBhbmQgeCtkeDxuIGFuZCB5K2R5PG0gYW5kIG5vdCBtYXJrc1t5K2R5XVt4K2R4XSBhbmQgYm1hcFt5K2R5XVt4K2R4XT09Ii4iOgoJCQlkaih4K2R4LCB5K2R5LCBjb3B5LmNvcHkobWFya3MpLCBkK2Q5ZHgsIGt4LGt5KQoJCnNtPTAJCQpmb3IgaSBpbiByYW5nZShrKToKCWRqKHgwLHkwLFtbRmFsc2UgZm9yIGogaW4gcmFuZ2UobildIGZvciB4IGluIHJhbmdlKG0pXSwwLGJvbWJzW2ldWzBdLCBib21ic1tpXVsxXSkKCWlmIHZtaW4hPTA6CgkJeDAseTAgPSBib21ic1tpXQoJCXNtKz12bWluCgl2bWluPTEwKioxMApzbS89dgpwcmludCgiJS4yZiIgJSBzbSk=