Serial Communication ESp and Mega

Could someone help me with some suggestions please?
Using ESP8266 and MEGA2560 on uart interface i want to display the message received on the mega serial to the lcd connected to it on i2c. The problem is that the lcd shows some strange unknown character and the serial monitor coresponding to mega shows this :

LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on

when it should display this:

LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF

the code for ESP is this:

int pinLed = 16;
void setup()
{
 
 Serial.begin(115200);
 Serial.begin(115200);
 pinMode(16,OUTPUT);
 delay(500);
}





void loop()
{

digitalWrite(16,HIGH);
Serial.print("LED on\n");
delay(5000);

digitalWrite(16,LOW);
Serial.print("LED OFF\n");
delay(5000);  

}

the code for mega is this:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include<SoftwareSerial.h>
LiquidCrystal_I2C lcd(0x3F,20,4);

void setup() 
{
  
  Serial.begin(115200);
  lcd.init();
  lcd.backlight();
  while (!Serial)
  {
    
    Serial.print("Attempting to connect! ");
    Serial.print("Trying again...");
  }
}


  void loop()
{
    
  if (Serial.available()>0) 
  
  {
    char c = Serial.write(Serial.read());
    Serial.print(c);
    lcd.print(c);
  }
}

How do you have this connected ? all on the same Serial port ? anyway, you should connect the ESP to one of the other 3 hwSerial ports the Mega has. And of course 1 of these lines is redundant

Serial.begin(115200);
 Serial.begin(115200);

and with 4 hwSerial ports at your disposal you won’t need this#include<SoftwareSerial.h>on a Mega