uses wincrt;
var ch:string;
function verif(ch:string):boolean;
var i:integer;
test:boolean;
begin i:=0;
repeat i:=i +1;
if upcase(ch[i]) in ['A'..'Z','0'..'9','-','_','@','.'] then test:=true else test:=false;;
until (test=false) or (i=length(ch));
verif:=test;
end;
function occurence(ch:string;c:char):integer;
var
i,occ:integer;
begin occ:=0;
for i:= 1 to length(ch) do if ch[i]=c then
occ:=occ+1;
occurence:=occ;
end;
function motpasse(ch:string):string;
var
mot:string;
p:integer;
begin mot:='';
p:=pos('@',ch);
mot:=copy(ch,1,p-1)+copy(ch,p+1,1)+ch[length(ch)];
motpasse:=mot;
end;
procedure saisie(var ch:string);
begin repeat write('ch= ');
readln(ch);
until (verif(ch)) and (upcase(ch[1]) in ['A'..'Z'])and(occurence(ch,'@')=1);
end;
begin saisie(ch);
writeln(motpasse(ch));
end.