program strings;
const Maxstr = 10;
type
   basicstring = array[1..Maxstr] of char;
   stringtype =
      record
         str: basicstring;
         len: integer
      end;
var r, s, t: stringtype;
    n, k: integer;

procedure readstring(var s: stringtype);
var ch: char;
    i: integer;
begin
   i := 0;
   while not eoln and (i < Maxstr) do
   begin
      i := i + 1;
      read(ch);
      s.str[i] := ch
   end;
   s.len := i;
   readln
end;

procedure writestring(s: stringtype);
var i: integer;
begin
   write('"');
   for i := 1 to s.len do
      write(s.str[i]);
   writeln('"')
end;

function length(s: stringtype): integer;
begin
   length := s.len
end;

procedure substring(s: stringtype;
     n: integer; k: integer; var t: stringtype);
var i: integer;
begin
   if (n + k - 1 > s.len) or (n <= 0) then
      writeln('*** error in substring ***')
   else
   begin
      for i := 1 to k do
         t.str[i] := s.str[i + n - 1];
      t.len := k
   end
end;

begin
   while not eof do
   begin
      writeln('Please enter a string on one line');
      readstring(s);
      writestring(s);
      writeln('Length:',length(s));
      writeln('Enter a starting position for a substring');
      readln(n);
      writeln('Enter a length for a substring');
      readln(k);
      substring(s, n, k, t);
      writestring(t);
      writeln('Length:', length(t))
   end
end.  
