#include<bits/stdc++.h>
using namespace std;
struct Node{
int data;
Node* next;
};
Node* head = 0;
void InsertFirst(int item)
{
Node* nn = new Node();
(*nn).data = item;
nn->next = head;
head = nn;
}
void InsertLast(int item)
{
if(head == 0) {
InsertFirst(item);
return;
}
Node* nn = new Node;
nn->data = item;
nn->next = 0;
Node* ptr = head;
while(ptr->next != 0)
{
ptr = ptr->next;
}
ptr->next = nn;
}
void Display()
{
Node* ptr = head;
while(ptr != 0)
{
cout << ptr->data << " ";
ptr = ptr->next;
}
cout << endl;
}
int main(){
// InsertFirst(5);
// Display();
// InsertFirst(15);
// InsertFirst(50);
// InsertFirst(21);
InsertLast(123);
InsertLast(22);
InsertLast(3);
Display();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IE5vZGV7CiAgICBpbnQgZGF0YTsKICAgIE5vZGUqIG5leHQ7Cn07Ck5vZGUqIGhlYWQgPSAwOwp2b2lkIEluc2VydEZpcnN0KGludCBpdGVtKQp7CiAgICBOb2RlKiBubiA9IG5ldyBOb2RlKCk7CiAgICAoKm5uKS5kYXRhID0gaXRlbTsKCiAgICBubi0+bmV4dCA9IGhlYWQ7CgogICAgaGVhZCA9IG5uOwp9CnZvaWQgSW5zZXJ0TGFzdChpbnQgaXRlbSkKewogICAgaWYoaGVhZCA9PSAwKSB7CiAgICAgICAgSW5zZXJ0Rmlyc3QoaXRlbSk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIE5vZGUqIG5uID0gbmV3IE5vZGU7CiAgICBubi0+ZGF0YSA9IGl0ZW07CiAgICBubi0+bmV4dCA9IDA7CgogICAgTm9kZSogcHRyID0gaGVhZDsKICAgIHdoaWxlKHB0ci0+bmV4dCAhPSAwKQogICAgewogICAgICAgIHB0ciA9IHB0ci0+bmV4dDsKICAgIH0KCiAgICBwdHItPm5leHQgPSBubjsKfQoKdm9pZCBEaXNwbGF5KCkKewogICAgTm9kZSogcHRyID0gaGVhZDsKCiAgICB3aGlsZShwdHIgIT0gMCkKICAgIHsKICAgICAgICBjb3V0IDw8IHB0ci0+ZGF0YSA8PCAiICI7CiAgICAgICAgcHRyID0gcHRyLT5uZXh0OwogICAgfQogICAgY291dCA8PCBlbmRsOwp9CmludCBtYWluKCl7CgovLyAgICBJbnNlcnRGaXJzdCg1KTsKLy8gICAgRGlzcGxheSgpOwovLyAgICBJbnNlcnRGaXJzdCgxNSk7Ci8vICAgIEluc2VydEZpcnN0KDUwKTsKLy8gICAgSW5zZXJ0Rmlyc3QoMjEpOwoKICAgIEluc2VydExhc3QoMTIzKTsKICAgIEluc2VydExhc3QoMjIpOwogICAgSW5zZXJ0TGFzdCgzKTsKCiAgICBEaXNwbGF5KCk7CiAgICByZXR1cm4gMDsKfQoK