input l;
input g$;
input f$;
label l1;
input h;
n:=l/h+1;
if n<>int(n) then l1;
dim u(n,n),w(n,n),f(n,n);
input m,e;
k:=h/l;
for i:=1 to n;
u(1,i):=0;
u(n,i):=0;
u(i,n):=0;
w(1,i):=0;
w(n,i):=0;
w(i,n):=0;
x:=(i-1)*k*l;
u(i,1):=val(g$);
w(1,1):=val(g$);
next i;
t:=2*cos(3.1415926/(n-1);
w0:=(2-sqr(4-t*t))/(t*t);
k0:=k*k;
for i:=2 to n-1;
for j:=2 to n-1;
u(i,j):=0;
next j;
nexy i;
m1:=0;
for j:=1 to n;
y:=(j-1)*k;
for i:=1 to n;
x:=(i-1)*k;
f(i,j):=val(f$);
next i;
next j;
label l4;
for j:=2 to n-1;
for i:=2 to n-1;
w:=w(i-1,j)+u(i+1,j)+w(i,j-1)+u(i,j+1)-4*u(i,j)+k0*f(i,j);
w(i,j):=u(i,j)+w0*w;
next i;
next j;
m1:=m1+1;
if m1=m then l2;
for j:=2 to n-1;
for i:=2 to n-1;
if abs(u(i,j)-w(i,j))>e then l3;
next i;
next j;
l2;
label l3;
for j:=2 to n-1;
for i:=2 to n-1;
u(i,j):=w(i,j);
next i;
next j;
l4;
label l2;
for i:=1 to n;
print (i-1)+h;
for j:=1 to n;
print (j-1)*h;
print (i-1)*h,u(i,j)*l*l;
next j;
print:
next i;
end;