program gambling;
type pole=array[1..200002] of integer;
var pol:pole;
	x,y,sum1,sum,f,ff,l,k,j,i:integer;
input,num : string[255];
inj : char;
begin
readln(input);
val(input,k,i);
repeat
for j:=1 to k do
 begin  
  num:="";
  repeat
  read(inj);
  if ((ord(inj) >= 48) AND (ord(inj) <= 57))  then num:=num+inj;
  until ((ord(inj) < 48) OR (ord(inj) > 57));
  val(num,pol[j],i);
 end;

sum:=32767;
for f:=1 to k do
 begin
  sum1:=0;
  for ff:=0 to (((k-1) div 2) -2) do
   begin    
    l:=(f+ff) mod k;
    if (l = 0) then l:=k;
    sum1:=sum1+pol[l];
   end;
   if (sum > sum1) then 
    begin
     sum:=sum1;
     x:=f-1;
     y:=(((k-1) div 2)+f-1) mod k;
     if (y = 0) then y:=k;
    end;
 end;
sum1:=sum;
for f:=1 to k do
 begin
  sum1:=sum1+pol[f];
 end;

writeln(sum1);
readln(input);
readln(input);
val(input,k,i);
until (k=0)
end.
