#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
struct Word
{
char* data;
struct Word* next;
};
struct Word* ptr = NULL;
void insert(char c)
{
struct Word
* temp
= (struct Word
*)malloc(sizeof(struct Word
));
temp->data = c;
temp->next = NULL;
if (ptr) {
struct Word* temp1 = ptr;
while(temp1->next != NULL) {
temp1 = temp1->next;
}
temp1->next = temp;
} else {
ptr = temp;
}
}
void freeData(struct Word* head)
{
struct Word* tmp;
while (head != NULL)
{
tmp = head;
head = head->next;
}
}
void print() {
struct Word *temp;
temp = ptr;
char c;
while(temp != NULL) {
if (temp->data == ',') {
temp = temp->next;
} else {
temp = temp->next;
}
}
}
int main(int argc, char *argv[])
{
int c;
while (((c
=getchar())!=EOF
) && c
!='\n') { insert((char)c);
}
print(); /*print the list*/
freeData(ptr);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8Y3R5cGUuaD4KCnN0cnVjdCBXb3JkCnsKICAgIGNoYXIqIGRhdGE7CiAgICBzdHJ1Y3QgV29yZCogbmV4dDsKfTsKCnN0cnVjdCBXb3JkKiBwdHIgPSBOVUxMOwoKCnZvaWQgaW5zZXJ0KGNoYXIgYykKewogICAgc3RydWN0IFdvcmQqIHRlbXAgPSAoc3RydWN0IFdvcmQqKW1hbGxvYyhzaXplb2Yoc3RydWN0IFdvcmQpKTsKCiAgICB0ZW1wLT5kYXRhID0gYzsKICAgIHRlbXAtPm5leHQgPSBOVUxMOwoKICAgIGlmIChwdHIpIHsKICAgICAgICBzdHJ1Y3QgV29yZCogdGVtcDEgPSBwdHI7CgogICAgICAgIHdoaWxlKHRlbXAxLT5uZXh0ICE9IE5VTEwpIHsKICAgICAgICAgICAgdGVtcDEgPSB0ZW1wMS0+bmV4dDsKICAgICAgICB9CgogICAgICAgIHRlbXAxLT5uZXh0ID0gdGVtcDsKCiAgICB9IGVsc2UgewogICAgICAgIHB0ciA9IHRlbXA7CiAgICB9Cgp9Cgp2b2lkIGZyZWVEYXRhKHN0cnVjdCBXb3JkKiBoZWFkKQp7CiAgIHN0cnVjdCBXb3JkKiB0bXA7CgogICB3aGlsZSAoaGVhZCAhPSBOVUxMKQogICAgewogICAgICAgdG1wID0gaGVhZDsKICAgICAgIGhlYWQgPSBoZWFkLT5uZXh0OwogICAgICAgZnJlZSh0bXApOwogICAgfQoKfQoKdm9pZCBwcmludCgpIHsKCiAgICBzdHJ1Y3QgV29yZCAqdGVtcDsKICAgIHRlbXAgPSBwdHI7CiAgICBjaGFyIGM7CgogICAgd2hpbGUodGVtcCAhPSBOVUxMKSB7CiAgICAJCiAgICAgICAgaWYgKHRlbXAtPmRhdGEgPT0gJywnKSB7CiAgICAgICAgCXByaW50ZigiXG4iKTsKICAgICAgICAJdGVtcCA9IHRlbXAtPm5leHQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAJcHJpbnRmKCIlYyIsIHRlbXAtPmRhdGEpOwogICAgICAgIAl0ZW1wID0gdGVtcC0+bmV4dDsKICAgICAgICB9CgogICAgfQoKICAgIAogICAgcHJpbnRmKCJcbiIpOwoKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewogICAgaW50IGM7CgogICAgcHJpbnRmKCJlbnRlciBhIHN0cmluZ1xuIik7CiAgICB3aGlsZSAoKChjPWdldGNoYXIoKSkhPUVPRikgJiYgYyE9J1xuJykgewogICAgICAgIGluc2VydCgoY2hhciljKTsKICAgIH0KCiAgICBwcmludCgpOyAvKnByaW50IHRoZSBsaXN0Ki8KICAgIGZyZWVEYXRhKHB0cik7CiAgICByZXR1cm4gMDsKfQ==